{"version":3,"file":"static/chunks/pages/content/[slugOrId]/[[...subPath]]-69f2d87896dcfb34.js","mappings":"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","sources":["webpack://_N_E/?78ec","webpack://_N_E/./__generated__/AccessibleImageWithLink_accessibleImage.graphql.ts","webpack://_N_E/./__generated__/AudioOnlyBanner_contentPiece.graphql.ts","webpack://_N_E/./__generated__/AuthorLinkWrapper_author.graphql.ts","webpack://_N_E/./__generated__/Avatar_image.graphql.ts","webpack://_N_E/./__generated__/ContentAuthorAndMetadata_author.graphql.ts","webpack://_N_E/./__generated__/ContentDownloadBlock_authorization.graphql.ts","webpack://_N_E/./__generated__/ContentDownloadBlock_contentPiece.graphql.ts","webpack://_N_E/./__generated__/ContentFooter_contentPiece.graphql.ts","webpack://_N_E/./__generated__/ContentHeaderDetails_authorization.graphql.ts","webpack://_N_E/./__generated__/ContentHeaderDetails_contentPiece.graphql.ts","webpack://_N_E/./__generated__/ContentHeader_contentPiece.graphql.ts","webpack://_N_E/./__generated__/ContentMetadata_contentPiece.graphql.ts","webpack://_N_E/./__generated__/ContentPieceQuery.graphql.ts","webpack://_N_E/./__generated__/ContentPieceSEO_contentPiece.graphql.ts","webpack://_N_E/./__generated__/ContentPieceSponsor_contentPiece.graphql.ts","webpack://_N_E/./__generated__/DefaultContentHeader_contentPiece.graphql.ts","webpack://_N_E/./__generated__/DownloadContentDropdownContentPieceRefetchQuery.graphql.ts","webpack://_N_E/./__generated__/DownloadContentDropdownContentPieceRefetch_viewer.graphql.ts","webpack://_N_E/./__generated__/DownloadContentDropdown_blocks.graphql.ts","webpack://_N_E/./__generated__/DownloadContentDropdown_contentPiece.graphql.ts","webpack://_N_E/./__generated__/EvergreenContentHeader_authorization.graphql.ts","webpack://_N_E/./__generated__/EvergreenContentHeader_contentPiece.graphql.ts","webpack://_N_E/./__generated__/InlineAdvert_viewer.graphql.ts","webpack://_N_E/./__generated__/KeyInsightsBlock_contentPiece.graphql.ts","webpack://_N_E/./__generated__/KeyInsightsCarousel_contentPiece.graphql.ts","webpack://_N_E/./__generated__/KeyInsights_contentPiece.graphql.ts","webpack://_N_E/./__generated__/ListenButton_contentPiece.graphql.ts","webpack://_N_E/./__generated__/MainContentSectionViewer_viewer.graphql.ts","webpack://_N_E/./__generated__/MainContentSection_contentPiece.graphql.ts","webpack://_N_E/./__generated__/MentionedAssets_contentPiece.graphql.ts","webpack://_N_E/./__generated__/MostPopularContent_viewer.graphql.ts","webpack://_N_E/./__generated__/NestedSignUp_viewer.graphql.ts","webpack://_N_E/./__generated__/PaywallBanner_viewer.graphql.ts","webpack://_N_E/./__generated__/PaywallForm_viewer.graphql.ts","webpack://_N_E/./__generated__/RelatedContentPieces_contentPiece.graphql.ts","webpack://_N_E/./__generated__/RelatedContentPieces_viewer.graphql.ts","webpack://_N_E/./__generated__/SingleContentPiece_authorization.graphql.ts","webpack://_N_E/./__generated__/SingleContentPiece_contentPiece.graphql.ts","webpack://_N_E/./__generated__/SingleContentPiece_viewer.graphql.ts","webpack://_N_E/./__generated__/createContentPieceCompletedByAnonymousUserEventMutation.graphql.ts","webpack://_N_E/./__generated__/createContentPieceStartedByAnonymousUserEventMutation.graphql.ts","webpack://_N_E/./__generated__/markContentPieceCompleteMutation.graphql.ts","webpack://_N_E/./__generated__/markContentPieceStartedMutation.graphql.ts","webpack://_N_E/./__generated__/usePricing_PricingConfig.graphql.ts","webpack://_N_E/./__generated__/usePricing_viewer.graphql.ts","webpack://_N_E/./__generated__/webPurchasePostSCAMutation.graphql.ts","webpack://_N_E/./components/AssetPreviewCard/AssetLogo.tsx","webpack://_N_E/./components/AssetPreviewCard/AssetPreviewCard.tsx","webpack://_N_E/./components/AssetPreviewCard/index.tsx","webpack://_N_E/./components/Avatar/Avatar.tsx","webpack://_N_E/./containers/Auth/Hooks/MarketingExperiment.ts","webpack://_N_E/./containers/Auth/Hooks/useMarketingOptIn.tsx","webpack://_N_E/./containers/NotFound/NotFound.tsx","webpack://_N_E/./containers/NotFound/ContentNotFound.tsx","webpack://_N_E/./containers/NotFound/index.tsx","webpack://_N_E/./lib/pricing/usePricing.ts","webpack://_N_E/./lib/pricing/utils.ts","webpack://_N_E/./lib/redirects/redirectOrServePageNotFoundStatus.tsx","webpack://_N_E/./lib/redirects/index.ts","webpack://_N_E/./public/images/app-store-logo.png","webpack://_N_E/./public/images/google-play-badge.png","webpack://_N_E/./modules/AppStore/AppStoreLinks.tsx","webpack://_N_E/./modules/Checkout/consts.ts","webpack://_N_E/./lib/getDiscountValue.ts","webpack://_N_E/./relay/mutations/webPurchasePostSCAMutation.tsx","webpack://_N_E/./modules/Checkout/utils/index.ts","webpack://_N_E/./components/StickySideBar/StickySideBar.tsx","webpack://_N_E/./lib/getDeviceContext.ts","webpack://_N_E/./lib/getLocalDateTimeWithOffset.ts","webpack://_N_E/./types/contentPiece.ts","webpack://_N_E/./modules/ContentDisclaimer/ContentDisclaimer.tsx","webpack://_N_E/./modules/ContentDisclaimer/index.tsx","webpack://_N_E/./modules/FreeArticleAllowance/FreeArticleCountBanner.tsx","webpack://_N_E/./components/Advertising/InlineAdvert/InlineAdvertUI.tsx","webpack://_N_E/./components/Image/Relay/AccessibleImageWithLink.tsx","webpack://_N_E/./components/Advertising/InlineAdvert/InlineAdvert.tsx","webpack://_N_E/./components/Advertising/InlineAdvert/index.tsx","webpack://_N_E/./components/OpacityOverlay/index.tsx","webpack://_N_E/./modules/ContentDisplay/Hooks/useContentScrollTracking.tsx","webpack://_N_E/./modules/ShareContent/consts.ts","webpack://_N_E/./modules/ShareContent/utils.ts","webpack://_N_E/./modules/ShareContent/ShareContentIcon.tsx","webpack://_N_E/./modules/ShareContent/ShareContentIcons.tsx","webpack://_N_E/./modules/ShareContent/index.tsx","webpack://_N_E/./modules/ContentFooter/ContentFooter.tsx","webpack://_N_E/./components/Author/AuthorLinkWrapper.tsx","webpack://_N_E/./lib/formatTimeStrings.ts","webpack://_N_E/./modules/ContentMetadata/ContentMetadata.tsx","webpack://_N_E/./modules/ContentMetadata/index.tsx","webpack://_N_E/./modules/ContentHeader/ContentAuthorAndMetadata.tsx","webpack://_N_E/./components/Dropdown/Dropdown.tsx","webpack://_N_E/./components/Dropdown/index.tsx","webpack://_N_E/./modules/ContentHeader/utils.ts","webpack://_N_E/./modules/ContentHeader/DownloadContentDropdown.tsx","webpack://_N_E/./modules/ContentHeader/ContentDownloadBlock.tsx","webpack://_N_E/./components/ConditionalHide/index.tsx","webpack://_N_E/./public/images/audio-only-phone.png","webpack://_N_E/./modules/AudioOnlyBanner/index.tsx","webpack://_N_E/./modules/ListenButton/index.tsx","webpack://_N_E/./modules/ShareContent/ShareContentDropdownItem.tsx","webpack://_N_E/./modules/ShareContent/ShareContentDropdown.tsx","webpack://_N_E/./modules/ContentHeader/DefaultContentHeader/ContentHeaderDetails.tsx","webpack://_N_E/./modules/ContentHeader/DefaultContentHeader/DefaultContentHeader.tsx","webpack://_N_E/./components/Link/NullableLink.tsx","webpack://_N_E/./modules/ContentHeader/ContentPieceSponsor.tsx","webpack://_N_E/./modules/ContentHeader/EvergreenContentHeader/EvergreenContentHeader.tsx","webpack://_N_E/./modules/ContentHeader/ContentHeader.tsx","webpack://_N_E/./modules/ContentHeader/index.ts","webpack://_N_E/./modules/KeyInsights/InsightCard.tsx","webpack://_N_E/./modules/KeyInsights/KeyInsightsBlock.tsx","webpack://_N_E/./modules/KeyInsights/KeyInsightsCarousel.tsx","webpack://_N_E/./modules/KeyInsights/KeyInsights.tsx","webpack://_N_E/./modules/KeyInsights/index.tsx","webpack://_N_E/./modules/MentionedAssets/MentionedAssets.tsx","webpack://_N_E/./modules/MentionedAssets/index.tsx","webpack://_N_E/./modules/SEO/ContentPieceSEO/index.tsx","webpack://_N_E/./modules/MainContentSection/MainContentSection.tsx","webpack://_N_E/./modules/MainContentSection/index.tsx","webpack://_N_E/./modules/MostPopularContent/MostPopularContent.tsx","webpack://_N_E/./modules/MostPopularContent/index.tsx","webpack://_N_E/./lib/getCheckoutUrl.ts","webpack://_N_E/./modules/PaywallBanner/NestedSignUp.tsx","webpack://_N_E/./modules/PaywallBanner/PaywallForm.tsx","webpack://_N_E/./modules/PaywallBanner/PaywallBanner.tsx","webpack://_N_E/./modules/PaywallBanner/index.tsx","webpack://_N_E/./modules/RelatedContentPieces/RelatedContentPieces.tsx","webpack://_N_E/./modules/RelatedContentPieces/index.tsx","webpack://_N_E/./modules/UserFeedback/FeedbackOption.tsx","webpack://_N_E/./modules/UserFeedback/UserFeedback.tsx","webpack://_N_E/./modules/UserFeedback/index.tsx","webpack://_N_E/./relay/mutations/createContentPieceCompletedByAnonymousUserEvent.tsx","webpack://_N_E/./relay/mutations/createContentPieceStartedByAnonymousUserEvent.tsx","webpack://_N_E/./relay/mutations/markContentPieceComplete.tsx","webpack://_N_E/./relay/mutations/markContentPieceStarted.tsx","webpack://_N_E/./containers/ContentPiece/SingleContentPiece.tsx","webpack://_N_E/./lib/checkPathAndPermanentRedirect/checkPathAndPermanentRedirect.tsx","webpack://_N_E/./containers/ContentPiece/ContentPiece.tsx","webpack://_N_E/./pages/content/[slugOrId]/[[...subPath]].tsx","webpack://_N_E/"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/content/[slugOrId]/[[...subPath]]\",\n function () {\n return require(\"private-next-pages/content/[slugOrId]/[[...subPath]].tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/content/[slugOrId]/[[...subPath]]\"])\n });\n }\n ","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type AccessibleImageWithLink_accessibleImage = {\n readonly full: string;\n readonly altText: string;\n readonly link: string | null;\n readonly \" $refType\": \"AccessibleImageWithLink_accessibleImage\";\n};\nexport type AccessibleImageWithLink_accessibleImage$data = AccessibleImageWithLink_accessibleImage;\nexport type AccessibleImageWithLink_accessibleImage$key = {\n readonly \" $data\"?: AccessibleImageWithLink_accessibleImage$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"AccessibleImageWithLink_accessibleImage\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"AccessibleImageWithLink_accessibleImage\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"full\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"altText\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"link\",\n \"storageKey\": null\n }\n ],\n \"type\": \"AccessibleURLImageWithLink\",\n \"abstractKey\": null\n};\n(node as any).hash = 'f54cdc746259cf4a16a754eb868936e1';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type AudioOnlyBanner_contentPiece = {\n readonly headerImage: {\n readonly \" $fragmentRefs\": FragmentRefs<\"ServerImage_image\">;\n };\n readonly title: string;\n readonly \" $refType\": \"AudioOnlyBanner_contentPiece\";\n};\nexport type AudioOnlyBanner_contentPiece$data = AudioOnlyBanner_contentPiece;\nexport type AudioOnlyBanner_contentPiece$key = {\n readonly \" $data\"?: AudioOnlyBanner_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"AudioOnlyBanner_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"AudioOnlyBanner_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"headerImage\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ServerImage_image\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '63fc1cc9ba3e4f87c1b2fe65f6786db5';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type AuthorLinkWrapper_author = {\n readonly slug: string;\n readonly isActive: boolean;\n readonly \" $refType\": \"AuthorLinkWrapper_author\";\n};\nexport type AuthorLinkWrapper_author$data = AuthorLinkWrapper_author;\nexport type AuthorLinkWrapper_author$key = {\n readonly \" $data\"?: AuthorLinkWrapper_author$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"AuthorLinkWrapper_author\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"AuthorLinkWrapper_author\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"slug\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isActive\",\n \"storageKey\": null\n }\n ],\n \"type\": \"Author\",\n \"abstractKey\": null\n};\n(node as any).hash = '215bbbac2f16822322cca019ae425d2e';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type Avatar_image = {\n readonly original: string;\n readonly \" $refType\": \"Avatar_image\";\n};\nexport type Avatar_image$data = Avatar_image;\nexport type Avatar_image$key = {\n readonly \" $data\"?: Avatar_image$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"Avatar_image\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"Avatar_image\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"original\",\n \"storageKey\": null\n }\n ],\n \"type\": \"URLImage\",\n \"abstractKey\": null\n};\n(node as any).hash = '7173476c8b45038ece3d004a686aa122';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentAuthorAndMetadata_author = {\n readonly id: string;\n readonly byline: string;\n readonly profilePicture: {\n readonly \" $fragmentRefs\": FragmentRefs<\"Avatar_image\">;\n };\n readonly \" $fragmentRefs\": FragmentRefs<\"AuthorLinkWrapper_author\">;\n readonly \" $refType\": \"ContentAuthorAndMetadata_author\";\n};\nexport type ContentAuthorAndMetadata_author$data = ContentAuthorAndMetadata_author;\nexport type ContentAuthorAndMetadata_author$key = {\n readonly \" $data\"?: ContentAuthorAndMetadata_author$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentAuthorAndMetadata_author\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentAuthorAndMetadata_author\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"byline\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"profilePicture\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"Avatar_image\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"AuthorLinkWrapper_author\"\n }\n ],\n \"type\": \"Author\",\n \"abstractKey\": null\n};\n(node as any).hash = 'fabb18720738f882f841dabcae18a4c6';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentDownloadBlock_authorization = {\n readonly roles: {\n readonly isB2bUser: boolean;\n };\n readonly \" $refType\": \"ContentDownloadBlock_authorization\";\n};\nexport type ContentDownloadBlock_authorization$data = ContentDownloadBlock_authorization;\nexport type ContentDownloadBlock_authorization$key = {\n readonly \" $data\"?: ContentDownloadBlock_authorization$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentDownloadBlock_authorization\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentDownloadBlock_authorization\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"RoleFlags\",\n \"kind\": \"LinkedField\",\n \"name\": \"roles\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isB2bUser\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Authorization\",\n \"abstractKey\": null\n};\n(node as any).hash = 'eba2fbb5a5fbb46b74e66447eca4f12d';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentDownloadBlock_contentPiece = {\n readonly isAvailableToProducts: boolean;\n readonly \" $fragmentRefs\": FragmentRefs<\"DownloadContentDropdown_contentPiece\">;\n readonly \" $refType\": \"ContentDownloadBlock_contentPiece\";\n};\nexport type ContentDownloadBlock_contentPiece$data = ContentDownloadBlock_contentPiece;\nexport type ContentDownloadBlock_contentPiece$key = {\n readonly \" $data\"?: ContentDownloadBlock_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentDownloadBlock_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentDownloadBlock_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isAvailableToProducts\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"DownloadContentDropdown_contentPiece\"\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '15c99a29158f2f105d31ee837b76c3fb';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentFooter_contentPiece = {\n readonly id: string;\n readonly title: string;\n readonly deepLink: string;\n readonly canonicalLink: string;\n readonly slug: string;\n readonly mostRelevantTags: {\n readonly edges: ReadonlyArray<{\n readonly node: {\n readonly \" $fragmentRefs\": FragmentRefs<\"Tag_tag\">;\n };\n }>;\n };\n readonly \" $refType\": \"ContentFooter_contentPiece\";\n};\nexport type ContentFooter_contentPiece$data = ContentFooter_contentPiece;\nexport type ContentFooter_contentPiece$key = {\n readonly \" $data\"?: ContentFooter_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentFooter_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentFooter_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deepLink\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"canonicalLink\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"slug\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 30\n }\n ],\n \"concreteType\": \"GenericTagConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"mostRelevantTags\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"GenericTagNonNullEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"Tag_tag\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"mostRelevantTags(first:30)\"\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = 'fd9ac1d4da716927e5f0a0a72236a9e1';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentHeaderDetails_authorization = {\n readonly roles: {\n readonly isB2bUser: boolean;\n };\n readonly \" $refType\": \"ContentHeaderDetails_authorization\";\n};\nexport type ContentHeaderDetails_authorization$data = ContentHeaderDetails_authorization;\nexport type ContentHeaderDetails_authorization$key = {\n readonly \" $data\"?: ContentHeaderDetails_authorization$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentHeaderDetails_authorization\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentHeaderDetails_authorization\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"RoleFlags\",\n \"kind\": \"LinkedField\",\n \"name\": \"roles\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isB2bUser\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Authorization\",\n \"abstractKey\": null\n};\n(node as any).hash = '1ec0a3dd9b631120605f9a6bda58fef7';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentHeaderDetails_contentPiece = {\n readonly id: string;\n readonly title: string;\n readonly deepLink: string;\n readonly canonicalLink: string;\n readonly slug: string;\n readonly \" $fragmentRefs\": FragmentRefs<\"ListenButton_contentPiece\" | \"ContentPieceBookmarkIcon_contentPiece\" | \"ContentDownloadBlock_contentPiece\">;\n readonly \" $refType\": \"ContentHeaderDetails_contentPiece\";\n};\nexport type ContentHeaderDetails_contentPiece$data = ContentHeaderDetails_contentPiece;\nexport type ContentHeaderDetails_contentPiece$key = {\n readonly \" $data\"?: ContentHeaderDetails_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentHeaderDetails_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentHeaderDetails_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deepLink\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"canonicalLink\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"slug\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ListenButton_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentPieceBookmarkIcon_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentDownloadBlock_contentPiece\"\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = 'a904802f981cf158edb797d87582d421';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentHeader_contentPiece = {\n readonly contentPieceType: {\n readonly name: string;\n };\n readonly \" $fragmentRefs\": FragmentRefs<\"DefaultContentHeader_contentPiece\" | \"EvergreenContentHeader_contentPiece\">;\n readonly \" $refType\": \"ContentHeader_contentPiece\";\n};\nexport type ContentHeader_contentPiece$data = ContentHeader_contentPiece;\nexport type ContentHeader_contentPiece$key = {\n readonly \" $data\"?: ContentHeader_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentHeader_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentHeader_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceType\",\n \"kind\": \"LinkedField\",\n \"name\": \"contentPieceType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"DefaultContentHeader_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"EvergreenContentHeader_contentPiece\"\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '5bc0726092943ff4b210eb5c15c6b352';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentMetadata_contentPiece = {\n readonly consumptionTime: number;\n readonly dateUpdatedDisplay: string;\n readonly contentPieceType: {\n readonly isEvergreen: boolean;\n };\n readonly author: {\n readonly byline: string;\n readonly \" $fragmentRefs\": FragmentRefs<\"AuthorLinkWrapper_author\">;\n } | null;\n readonly \" $refType\": \"ContentMetadata_contentPiece\";\n};\nexport type ContentMetadata_contentPiece$data = ContentMetadata_contentPiece;\nexport type ContentMetadata_contentPiece$key = {\n readonly \" $data\"?: ContentMetadata_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentMetadata_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentMetadata_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"consumptionTime\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"dateUpdatedDisplay\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceType\",\n \"kind\": \"LinkedField\",\n \"name\": \"contentPieceType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isEvergreen\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Author\",\n \"kind\": \"LinkedField\",\n \"name\": \"author\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"byline\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"AuthorLinkWrapper_author\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '5e1390a185dd20973b531bdcd264bbbc';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentPieceQueryVariables = {\n slugOrId?: string | null | undefined;\n};\nexport type ContentPieceQueryResponse = {\n readonly viewer: {\n readonly authorization: {\n readonly roles: {\n readonly isAnonymous: boolean;\n };\n readonly \" $fragmentRefs\": FragmentRefs<\"SingleContentPiece_authorization\">;\n };\n readonly contentPiece: {\n readonly canonicalLink: string;\n readonly \" $fragmentRefs\": FragmentRefs<\"SingleContentPiece_contentPiece\">;\n } | null;\n readonly \" $fragmentRefs\": FragmentRefs<\"SingleContentPiece_viewer\">;\n };\n};\nexport type ContentPieceQuery = {\n readonly response: ContentPieceQueryResponse;\n readonly variables: ContentPieceQueryVariables;\n};\n\n\n\n/*\nquery ContentPieceQuery(\n $slugOrId: String\n) {\n viewer {\n authorization {\n roles {\n isAnonymous\n }\n ...SingleContentPiece_authorization\n }\n ...SingleContentPiece_viewer_1QxYRk\n contentPiece(slugOrId: $slugOrId) {\n __typename\n ...SingleContentPiece_contentPiece\n canonicalLink\n id\n }\n id\n }\n}\n\nfragment AccessibleImageWithLink_accessibleImage on AccessibleURLImageWithLink {\n full\n altText\n link\n}\n\nfragment AccessibleImage_accessibleImage on AccessibleURLImage {\n full\n altText\n}\n\nfragment AdvertWrapper_activeProductAdvert on ProductAdvert {\n id\n advertHandle\n destinationUrl\n sponsoringCompany {\n name\n id\n }\n}\n\nfragment AudioOnlyBanner_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n headerImage {\n ...ServerImage_image\n }\n title\n}\n\nfragment AuthorLinkWrapper_author on Author {\n slug\n isActive\n}\n\nfragment Avatar_image on URLImage {\n original\n}\n\nfragment BannerAdvert_activeProductAdvert on ProductAdvert {\n title\n description\n destinationUrl\n sponsoringCompany {\n name\n id\n }\n wideImage {\n ...AccessibleImage_accessibleImage\n }\n narrowImage {\n ...AccessibleImage_accessibleImage\n }\n ...AdvertWrapper_activeProductAdvert\n}\n\nfragment Block_block on ContentPieceBlock {\n __isContentPieceBlock: __typename\n __typename\n ... on TextBlock {\n id\n ...TextBlock_block\n }\n ... on ImageBlock {\n id\n ...ImageBlock_block\n }\n ... on QuoteBlock {\n id\n ...QuoteBlock_block\n }\n}\n\nfragment Block_glossaryTerms on GlossaryTermConnection {\n ...TextBlock_glossaryTerms\n}\n\nfragment ContentAuthorAndMetadata_author on Author {\n id\n byline\n profilePicture {\n ...Avatar_image\n }\n ...AuthorLinkWrapper_author\n}\n\nfragment ContentDownloadBlock_authorization on Authorization {\n roles {\n isB2bUser\n }\n}\n\nfragment ContentDownloadBlock_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n ...DownloadContentDropdown_contentPiece\n isAvailableToProducts\n}\n\nfragment ContentFooter_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n id\n title\n deepLink\n canonicalLink\n slug\n mostRelevantTags(first: 30) {\n edges {\n node {\n __typename\n ...Tag_tag\n ... on Node {\n __isNode: __typename\n id\n }\n }\n }\n }\n}\n\nfragment ContentHeaderDetails_authorization on Authorization {\n roles {\n isB2bUser\n }\n}\n\nfragment ContentHeaderDetails_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n ...ListenButton_contentPiece\n ...ContentPieceBookmarkIcon_contentPiece\n ...ContentDownloadBlock_contentPiece\n id\n title\n deepLink\n canonicalLink\n slug\n}\n\nfragment ContentHeader_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n ...DefaultContentHeader_contentPiece\n ...EvergreenContentHeader_contentPiece\n contentPieceType {\n name\n }\n}\n\nfragment ContentMetadata_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n consumptionTime\n dateUpdatedDisplay\n contentPieceType {\n isEvergreen\n }\n author {\n byline\n ...AuthorLinkWrapper_author\n id\n }\n}\n\nfragment ContentPieceBookmarkIcon_contentPiece on ContentPiece {\n id\n isBookmarked\n title\n}\n\nfragment ContentPieceCardWrapper_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n id\n title\n subtitle\n slug\n headerImage {\n ...ServerImage_image\n }\n mostRelevantTags(first: 2) {\n edges {\n node {\n __typename\n ...Tag_tag\n ... on Node {\n __isNode: __typename\n id\n }\n }\n }\n }\n dateUpdatedDisplay\n author {\n id\n byline\n slug\n isActive\n }\n canonicalLink\n contentPieceType {\n name\n publicName\n }\n ...authorization_contentPiece\n ...ContentPieceBookmarkIcon_contentPiece\n}\n\nfragment ContentPieceSEO_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n title\n imageForSeo: headerImage {\n url: full\n }\n subtitle\n firstPublishedAt\n id\n ... on PublicContentPiece {\n globalContentPieceId\n }\n byline\n seoTitle\n searchDescription\n canonicalLink\n}\n\nfragment ContentPieceSponsor_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n sponsoringCompany {\n id\n name\n link\n logo {\n ...ServerImage_image\n }\n }\n}\n\nfragment DefaultContentHeader_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n ...ContentHeaderDetails_contentPiece\n ...AudioOnlyBanner_contentPiece\n ...ContentMetadata_contentPiece\n id\n title\n headerImage {\n ...ServerImage_image\n }\n author {\n ...AuthorLinkWrapper_author\n ...ContentAuthorAndMetadata_author\n id\n }\n}\n\nfragment DefaultLayout_viewer on Viewer {\n ...useEnrollInExperiment_viewer\n authorization {\n ...Navigation_authorization\n }\n}\n\nfragment DownloadContentDropdownContentPieceRefetch_viewer_1QxYRk on Viewer {\n contentPieceTranslation: contentPiece(slugOrId: $slugOrId) {\n __typename\n id\n title\n isAvailableToProducts\n blocks {\n __typename\n ...DownloadContentDropdown_blocks\n ... on Node {\n __isNode: __typename\n id\n }\n }\n keyInsightsBlocks {\n id\n ...DownloadContentDropdown_blocks\n }\n }\n}\n\nfragment DownloadContentDropdown_blocks on ContentPieceBlock {\n __isContentPieceBlock: __typename\n ... on TextBlock {\n textMarkdown\n }\n}\n\nfragment DownloadContentDropdown_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n localeMapping {\n languageCode\n contentPieceId\n }\n}\n\nfragment EvergreenContentHeader_authorization on Authorization {\n roles {\n isB2bUser\n }\n}\n\nfragment EvergreenContentHeader_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n ...ContentMetadata_contentPiece\n ...ListenButton_contentPiece\n ...ContentPieceSponsor_contentPiece\n ...ContentPieceBookmarkIcon_contentPiece\n ...ContentDownloadBlock_contentPiece\n canonicalLink\n id\n deepLink\n title\n slug\n headerImage {\n ...ServerImage_image\n }\n}\n\nfragment ImageBlock_block on ImageBlock {\n image {\n ...ServerImage_image\n }\n alt\n caption\n link\n}\n\nfragment InlineAdvert_viewer on Viewer {\n adverts {\n newsletterLatestRandom {\n id\n title\n trackingTitle\n image {\n ...AccessibleImageWithLink_accessibleImage\n }\n button {\n text\n link\n }\n content {\n __typename\n ... on TextBlock {\n textMarkdown\n }\n ... on ImageBlock {\n ...ImageBlock_block\n }\n ... on Node {\n __isNode: __typename\n id\n }\n }\n disclaimer {\n __typename\n ... on TextBlock {\n textMarkdown\n }\n ... on ImageBlock {\n ...ImageBlock_block\n }\n ... on Node {\n __isNode: __typename\n id\n }\n }\n }\n }\n}\n\nfragment KeyInsightsBlock_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n keyInsightsBlocks {\n id\n textMarkdown\n }\n}\n\nfragment KeyInsightsCarousel_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n keyInsightsBlocks {\n id\n textMarkdown\n }\n}\n\nfragment KeyInsights_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n ...KeyInsightsCarousel_contentPiece\n ...KeyInsightsBlock_contentPiece\n keyInsightsBlocks {\n id\n textMarkdown\n }\n}\n\nfragment ListenButton_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n id\n title\n trackingTitle\n subtitle\n readingTime\n isPremium\n hasBlocks\n hasAudio\n contentPieceType {\n name\n trackingName\n }\n ...AudioOnlyBanner_contentPiece\n}\n\nfragment MainContentSectionViewer_viewer_1QxYRk on Viewer {\n ...useEnrollInExperiment_viewer\n ...DownloadContentDropdownContentPieceRefetch_viewer_1QxYRk\n ...InlineAdvert_viewer\n}\n\nfragment MainContentSection_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n ...ContentPieceSEO_contentPiece\n ...KeyInsights_contentPiece\n ...ContentHeader_contentPiece\n ...ContentFooter_contentPiece\n title\n headerImage {\n ...ServerImage_image\n }\n globalContentPieceId\n trackingTitle\n subtitle\n firstPublishedAt\n readingTime\n isPremium\n deepLink\n hasBlocks\n hasAudio\n id\n canonicalLink\n byline\n contentPieceType {\n name\n trackingName\n }\n blocks {\n __typename\n ...Block_block\n ... on Node {\n __isNode: __typename\n id\n }\n }\n glossaryTerms {\n ...Block_glossaryTerms\n }\n ...MentionedAssets_contentPiece\n}\n\nfragment MentionedAssets_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n title\n financialAssets {\n __typename\n symbol\n name\n logo {\n thumbnail\n }\n id\n }\n}\n\nfragment MostPopularContent_viewer on Viewer {\n authorization {\n ...authorization_authorization\n }\n mostPopularContentPieces(first: 5) {\n edges {\n node {\n __typename\n globalContentPieceId\n ...ContentPieceCardWrapper_contentPiece\n id\n }\n }\n }\n}\n\nfragment Navigation_authorization on Authorization {\n roles {\n isB2bUser\n }\n}\n\nfragment NestedSignUp_viewer on Viewer {\n ...useEnrollInExperiment_viewer\n}\n\nfragment PaywallBanner_viewer on Viewer {\n ...PaywallForm_viewer\n ...useEnrollInExperiment_viewer\n}\n\nfragment PaywallForm_viewer on Viewer {\n ...NestedSignUp_viewer\n ...usePricing_viewer\n}\n\nfragment QuoteBlock_block on QuoteBlock {\n quote\n caption\n}\n\nfragment RelatedContentPieces_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n globalContentPieceId\n relatedContentPieces {\n __typename\n id\n globalContentPieceId\n ...ContentPieceCardWrapper_contentPiece\n }\n}\n\nfragment RelatedContentPieces_viewer on Viewer {\n dailyContentSelection(first: 8) {\n edges {\n node {\n __typename\n __isContentPieceInterface: __typename\n id\n globalContentPieceId\n ...ContentPieceCardWrapper_contentPiece\n }\n }\n }\n contentPieces(first: 8, contentPieceType: \"INSIGHT\", filterUncompletedOnly: true) {\n edges {\n node {\n __typename\n id\n globalContentPieceId\n ...ContentPieceCardWrapper_contentPiece\n }\n }\n }\n ...useEnrollInExperiment_viewer\n}\n\nfragment ServerImage_image on URLImage {\n full\n}\n\nfragment SingleContentPiece_authorization on Authorization {\n ...authorization_authorization\n ...ContentHeaderDetails_authorization\n ...ContentDownloadBlock_authorization\n ...EvergreenContentHeader_authorization\n roles {\n isPreviewingContentAllowance\n isPreviewing\n isAnonymous\n hasPremiumSubscription\n isFreemium\n }\n}\n\nfragment SingleContentPiece_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n ...AudioOnlyBanner_contentPiece\n ...authorization_contentPiece\n ...MainContentSection_contentPiece\n ...RelatedContentPieces_contentPiece\n globalContentPieceId\n trackingTitle\n isPremium\n hasBlocks\n hasAudio\n contentPieceType {\n name\n trackingName\n isAvailableForFreemium\n }\n sponsoringCompany {\n name\n id\n }\n activeProductAdvert {\n ...BannerAdvert_activeProductAdvert\n id\n }\n}\n\nfragment SingleContentPiece_viewer_1QxYRk on Viewer {\n features\n ...PaywallBanner_viewer\n ...DefaultLayout_viewer\n ...useEnrollInExperiment_viewer\n ...MostPopularContent_viewer\n ...MainContentSectionViewer_viewer_1QxYRk\n ...RelatedContentPieces_viewer\n}\n\nfragment Tag_tag on GenericTag {\n __isGenericTag: __typename\n __typename\n ... on AssetClassTag {\n name\n slug\n }\n ... on GeographyTag {\n name\n slug\n }\n ... on ContentTag {\n name\n slug\n }\n}\n\nfragment TextBlock_block on TextBlock {\n textMarkdown\n}\n\nfragment TextBlock_glossaryTerms on GlossaryTermConnection {\n ...TextWithGlossary_glossaryTerms\n}\n\nfragment TextWithGlossary_glossaryTerms on GlossaryTermConnection {\n edges {\n node {\n id\n title\n definitionMarkdown\n slug\n }\n }\n}\n\nfragment authorization_authorization on Authorization {\n roles {\n isPreviewingContentAllowance\n isPreviewing\n isAnonymous\n hasPremiumSubscription\n isFreemium\n }\n}\n\nfragment authorization_contentPiece on ContentPieceInterface {\n __isContentPieceInterface: __typename\n isPremium\n contentPieceType {\n isAvailableForFreemium\n }\n}\n\nfragment useEnrollInExperiment_viewer on Viewer {\n experiments {\n name\n variant {\n name\n config {\n maxContentPieceAllowance\n }\n id\n }\n id\n }\n}\n\nfragment usePricing_PricingConfig on PricingConfig {\n stripeId\n amount\n currency\n currencySymbol\n trialDays\n discount {\n discountPct\n couponDurationInMonths\n couponRepetition\n discountFixed {\n currencySymbol\n amount\n }\n id\n }\n}\n\nfragment usePricing_viewer on Viewer {\n webPricingConfig {\n name\n yearly {\n ...usePricing_PricingConfig\n id\n }\n monthly {\n ...usePricing_PricingConfig\n id\n }\n id\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"slugOrId\"\n }\n],\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isAnonymous\",\n \"storageKey\": null\n},\nv2 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"slugOrId\",\n \"variableName\": \"slugOrId\"\n }\n],\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"canonicalLink\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n},\nv5 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv6 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"amount\",\n \"storageKey\": null\n},\nv7 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"currencySymbol\",\n \"storageKey\": null\n},\nv8 = [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"stripeId\",\n \"storageKey\": null\n },\n (v6/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"currency\",\n \"storageKey\": null\n },\n (v7/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trialDays\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"StripeDiscount\",\n \"kind\": \"LinkedField\",\n \"name\": \"discount\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"discountPct\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"couponDurationInMonths\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"couponRepetition\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Price\",\n \"kind\": \"LinkedField\",\n \"name\": \"discountFixed\",\n \"plural\": false,\n \"selections\": [\n (v7/*: any*/),\n (v6/*: any*/)\n ],\n \"storageKey\": null\n },\n (v5/*: any*/)\n ],\n \"storageKey\": null\n },\n (v5/*: any*/)\n],\nv9 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n},\nv10 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"globalContentPieceId\",\n \"storageKey\": null\n},\nv11 = {\n \"kind\": \"TypeDiscriminator\",\n \"abstractKey\": \"__isContentPieceInterface\"\n},\nv12 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n},\nv13 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"subtitle\",\n \"storageKey\": null\n},\nv14 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"slug\",\n \"storageKey\": null\n},\nv15 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"full\",\n \"storageKey\": null\n},\nv16 = [\n (v15/*: any*/)\n],\nv17 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"headerImage\",\n \"plural\": false,\n \"selections\": (v16/*: any*/),\n \"storageKey\": null\n},\nv18 = [\n (v4/*: any*/),\n (v14/*: any*/)\n],\nv19 = {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v5/*: any*/)\n ],\n \"type\": \"Node\",\n \"abstractKey\": \"__isNode\"\n},\nv20 = [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"GenericTagNonNullEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v9/*: any*/),\n {\n \"kind\": \"TypeDiscriminator\",\n \"abstractKey\": \"__isGenericTag\"\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v18/*: any*/),\n \"type\": \"AssetClassTag\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v18/*: any*/),\n \"type\": \"GeographyTag\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v18/*: any*/),\n \"type\": \"ContentTag\",\n \"abstractKey\": null\n },\n (v19/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n],\nv21 = {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 2\n }\n ],\n \"concreteType\": \"GenericTagConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"mostRelevantTags\",\n \"plural\": false,\n \"selections\": (v20/*: any*/),\n \"storageKey\": \"mostRelevantTags(first:2)\"\n},\nv22 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"dateUpdatedDisplay\",\n \"storageKey\": null\n},\nv23 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"byline\",\n \"storageKey\": null\n},\nv24 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isActive\",\n \"storageKey\": null\n},\nv25 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Author\",\n \"kind\": \"LinkedField\",\n \"name\": \"author\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n (v23/*: any*/),\n (v14/*: any*/),\n (v24/*: any*/)\n ],\n \"storageKey\": null\n},\nv26 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isAvailableForFreemium\",\n \"storageKey\": null\n},\nv27 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceType\",\n \"kind\": \"LinkedField\",\n \"name\": \"contentPieceType\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"publicName\",\n \"storageKey\": null\n },\n (v26/*: any*/)\n ],\n \"storageKey\": null\n},\nv28 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPremium\",\n \"storageKey\": null\n},\nv29 = {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isBookmarked\",\n \"storageKey\": null\n }\n ],\n \"type\": \"ContentPiece\",\n \"abstractKey\": null\n},\nv30 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isAvailableToProducts\",\n \"storageKey\": null\n},\nv31 = {\n \"kind\": \"TypeDiscriminator\",\n \"abstractKey\": \"__isContentPieceBlock\"\n},\nv32 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"textMarkdown\",\n \"storageKey\": null\n},\nv33 = {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v32/*: any*/)\n ],\n \"type\": \"TextBlock\",\n \"abstractKey\": null\n},\nv34 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trackingTitle\",\n \"storageKey\": null\n},\nv35 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"altText\",\n \"storageKey\": null\n},\nv36 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"link\",\n \"storageKey\": null\n},\nv37 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"image\",\n \"plural\": false,\n \"selections\": (v16/*: any*/),\n \"storageKey\": null\n},\nv38 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"alt\",\n \"storageKey\": null\n},\nv39 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"caption\",\n \"storageKey\": null\n},\nv40 = [\n (v9/*: any*/),\n (v33/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v37/*: any*/),\n (v38/*: any*/),\n (v39/*: any*/),\n (v36/*: any*/)\n ],\n \"type\": \"ImageBlock\",\n \"abstractKey\": null\n },\n (v19/*: any*/)\n],\nv41 = {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 8\n},\nv42 = [\n (v9/*: any*/),\n (v5/*: any*/),\n (v10/*: any*/),\n (v11/*: any*/),\n (v12/*: any*/),\n (v13/*: any*/),\n (v14/*: any*/),\n (v17/*: any*/),\n (v21/*: any*/),\n (v22/*: any*/),\n (v25/*: any*/),\n (v3/*: any*/),\n (v27/*: any*/),\n (v28/*: any*/),\n (v29/*: any*/)\n],\nv43 = [\n (v5/*: any*/),\n (v32/*: any*/)\n],\nv44 = [\n (v15/*: any*/),\n (v35/*: any*/)\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentPieceQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Authorization\",\n \"kind\": \"LinkedField\",\n \"name\": \"authorization\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"RoleFlags\",\n \"kind\": \"LinkedField\",\n \"name\": \"roles\",\n \"plural\": false,\n \"selections\": [\n (v1/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"SingleContentPiece_authorization\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": (v2/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"contentPiece\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"SingleContentPiece_contentPiece\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": (v2/*: any*/),\n \"kind\": \"FragmentSpread\",\n \"name\": \"SingleContentPiece_viewer\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"ContentPieceQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Authorization\",\n \"kind\": \"LinkedField\",\n \"name\": \"authorization\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"RoleFlags\",\n \"kind\": \"LinkedField\",\n \"name\": \"roles\",\n \"plural\": false,\n \"selections\": [\n (v1/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPreviewingContentAllowance\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPreviewing\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasPremiumSubscription\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isFreemium\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isB2bUser\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"features\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Experiment\",\n \"kind\": \"LinkedField\",\n \"name\": \"experiments\",\n \"plural\": true,\n \"selections\": [\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Variant\",\n \"kind\": \"LinkedField\",\n \"name\": \"variant\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"VariantConfig\",\n \"kind\": \"LinkedField\",\n \"name\": \"config\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"maxContentPieceAllowance\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v5/*: any*/)\n ],\n \"storageKey\": null\n },\n (v5/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"WebPricingConfig\",\n \"kind\": \"LinkedField\",\n \"name\": \"webPricingConfig\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PricingConfig\",\n \"kind\": \"LinkedField\",\n \"name\": \"yearly\",\n \"plural\": false,\n \"selections\": (v8/*: any*/),\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PricingConfig\",\n \"kind\": \"LinkedField\",\n \"name\": \"monthly\",\n \"plural\": false,\n \"selections\": (v8/*: any*/),\n \"storageKey\": null\n },\n (v5/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 5\n }\n ],\n \"concreteType\": \"ContentPieceConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"mostPopularContentPieces\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceInterfaceNonNullEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v9/*: any*/),\n (v10/*: any*/),\n (v11/*: any*/),\n (v5/*: any*/),\n (v12/*: any*/),\n (v13/*: any*/),\n (v14/*: any*/),\n (v17/*: any*/),\n (v21/*: any*/),\n (v22/*: any*/),\n (v25/*: any*/),\n (v3/*: any*/),\n (v27/*: any*/),\n (v28/*: any*/),\n (v29/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"mostPopularContentPieces(first:5)\"\n },\n {\n \"alias\": \"contentPieceTranslation\",\n \"args\": (v2/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"contentPiece\",\n \"plural\": false,\n \"selections\": [\n (v9/*: any*/),\n (v5/*: any*/),\n (v12/*: any*/),\n (v30/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"blocks\",\n \"plural\": true,\n \"selections\": [\n (v9/*: any*/),\n (v31/*: any*/),\n (v33/*: any*/),\n (v19/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"TextBlock\",\n \"kind\": \"LinkedField\",\n \"name\": \"keyInsightsBlocks\",\n \"plural\": true,\n \"selections\": [\n (v5/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v33/*: any*/)\n ],\n \"type\": \"ContentPieceBlock\",\n \"abstractKey\": \"__isContentPieceBlock\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Adverts\",\n \"kind\": \"LinkedField\",\n \"name\": \"adverts\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Advert\",\n \"kind\": \"LinkedField\",\n \"name\": \"newsletterLatestRandom\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n (v12/*: any*/),\n (v34/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AccessibleURLImageWithLink\",\n \"kind\": \"LinkedField\",\n \"name\": \"image\",\n \"plural\": false,\n \"selections\": [\n (v15/*: any*/),\n (v35/*: any*/),\n (v36/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Button\",\n \"kind\": \"LinkedField\",\n \"name\": \"button\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"text\",\n \"storageKey\": null\n },\n (v36/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"content\",\n \"plural\": true,\n \"selections\": (v40/*: any*/),\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"disclaimer\",\n \"plural\": true,\n \"selections\": (v40/*: any*/),\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n (v41/*: any*/)\n ],\n \"concreteType\": \"ContentPieceConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"dailyContentSelection\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceInterfaceNonNullEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v9/*: any*/),\n (v11/*: any*/),\n (v5/*: any*/),\n (v10/*: any*/),\n (v12/*: any*/),\n (v13/*: any*/),\n (v14/*: any*/),\n (v17/*: any*/),\n (v21/*: any*/),\n (v22/*: any*/),\n (v25/*: any*/),\n (v3/*: any*/),\n (v27/*: any*/),\n (v28/*: any*/),\n (v29/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"dailyContentSelection(first:8)\"\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"contentPieceType\",\n \"value\": \"INSIGHT\"\n },\n {\n \"kind\": \"Literal\",\n \"name\": \"filterUncompletedOnly\",\n \"value\": true\n },\n (v41/*: any*/)\n ],\n \"concreteType\": \"ContentPieceConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"contentPieces\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceInterfaceNonNullEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": (v42/*: any*/),\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"contentPieces(contentPieceType:\\\"INSIGHT\\\",filterUncompletedOnly:true,first:8)\"\n },\n {\n \"alias\": null,\n \"args\": (v2/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"contentPiece\",\n \"plural\": false,\n \"selections\": [\n (v9/*: any*/),\n (v11/*: any*/),\n (v17/*: any*/),\n (v12/*: any*/),\n (v28/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceType\",\n \"kind\": \"LinkedField\",\n \"name\": \"contentPieceType\",\n \"plural\": false,\n \"selections\": [\n (v26/*: any*/),\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trackingName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isEvergreen\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": \"imageForSeo\",\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"headerImage\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": \"url\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"full\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v13/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstPublishedAt\",\n \"storageKey\": null\n },\n (v5/*: any*/),\n (v23/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"seoTitle\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"searchDescription\",\n \"storageKey\": null\n },\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"TextBlock\",\n \"kind\": \"LinkedField\",\n \"name\": \"keyInsightsBlocks\",\n \"plural\": true,\n \"selections\": (v43/*: any*/),\n \"storageKey\": null\n },\n (v34/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"readingTime\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasBlocks\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasAudio\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LocaleMapping\",\n \"kind\": \"LinkedField\",\n \"name\": \"localeMapping\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"languageCode\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"contentPieceId\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v30/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deepLink\",\n \"storageKey\": null\n },\n (v14/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"consumptionTime\",\n \"storageKey\": null\n },\n (v22/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Author\",\n \"kind\": \"LinkedField\",\n \"name\": \"author\",\n \"plural\": false,\n \"selections\": [\n (v23/*: any*/),\n (v14/*: any*/),\n (v24/*: any*/),\n (v5/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"profilePicture\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"original\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SponsoringCompany\",\n \"kind\": \"LinkedField\",\n \"name\": \"sponsoringCompany\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n (v4/*: any*/),\n (v36/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"logo\",\n \"plural\": false,\n \"selections\": (v16/*: any*/),\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 30\n }\n ],\n \"concreteType\": \"GenericTagConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"mostRelevantTags\",\n \"plural\": false,\n \"selections\": (v20/*: any*/),\n \"storageKey\": \"mostRelevantTags(first:30)\"\n },\n (v10/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"blocks\",\n \"plural\": true,\n \"selections\": [\n (v9/*: any*/),\n (v31/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": (v43/*: any*/),\n \"type\": \"TextBlock\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v5/*: any*/),\n (v37/*: any*/),\n (v38/*: any*/),\n (v39/*: any*/),\n (v36/*: any*/)\n ],\n \"type\": \"ImageBlock\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v5/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"quote\",\n \"storageKey\": null\n },\n (v39/*: any*/)\n ],\n \"type\": \"QuoteBlock\",\n \"abstractKey\": null\n },\n (v19/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"GlossaryTermConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"glossaryTerms\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"GlossaryTermNonNullEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"GlossaryTerm\",\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n (v5/*: any*/),\n (v12/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"definitionMarkdown\",\n \"storageKey\": null\n },\n (v14/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"financialAssets\",\n \"plural\": true,\n \"selections\": [\n (v9/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"symbol\",\n \"storageKey\": null\n },\n (v4/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"FinancialAssetLogo\",\n \"kind\": \"LinkedField\",\n \"name\": \"logo\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"thumbnail\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v5/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"relatedContentPieces\",\n \"plural\": true,\n \"selections\": (v42/*: any*/),\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ProductAdvert\",\n \"kind\": \"LinkedField\",\n \"name\": \"activeProductAdvert\",\n \"plural\": false,\n \"selections\": [\n (v12/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"description\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"destinationUrl\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SponsoringCompany\",\n \"kind\": \"LinkedField\",\n \"name\": \"sponsoringCompany\",\n \"plural\": false,\n \"selections\": [\n (v4/*: any*/),\n (v5/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AccessibleURLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"wideImage\",\n \"plural\": false,\n \"selections\": (v44/*: any*/),\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AccessibleURLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"narrowImage\",\n \"plural\": false,\n \"selections\": (v44/*: any*/),\n \"storageKey\": null\n },\n (v5/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"advertHandle\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v29/*: any*/)\n ],\n \"storageKey\": null\n },\n (v5/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"7c838ff2cc5d79809fb900b7c4122cff\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"ContentPieceQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query ContentPieceQuery(\\n $slugOrId: String\\n) {\\n viewer {\\n authorization {\\n roles {\\n isAnonymous\\n }\\n ...SingleContentPiece_authorization\\n }\\n ...SingleContentPiece_viewer_1QxYRk\\n contentPiece(slugOrId: $slugOrId) {\\n __typename\\n ...SingleContentPiece_contentPiece\\n canonicalLink\\n id\\n }\\n id\\n }\\n}\\n\\nfragment AccessibleImageWithLink_accessibleImage on AccessibleURLImageWithLink {\\n full\\n altText\\n link\\n}\\n\\nfragment AccessibleImage_accessibleImage on AccessibleURLImage {\\n full\\n altText\\n}\\n\\nfragment AdvertWrapper_activeProductAdvert on ProductAdvert {\\n id\\n advertHandle\\n destinationUrl\\n sponsoringCompany {\\n name\\n id\\n }\\n}\\n\\nfragment AudioOnlyBanner_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n headerImage {\\n ...ServerImage_image\\n }\\n title\\n}\\n\\nfragment AuthorLinkWrapper_author on Author {\\n slug\\n isActive\\n}\\n\\nfragment Avatar_image on URLImage {\\n original\\n}\\n\\nfragment BannerAdvert_activeProductAdvert on ProductAdvert {\\n title\\n description\\n destinationUrl\\n sponsoringCompany {\\n name\\n id\\n }\\n wideImage {\\n ...AccessibleImage_accessibleImage\\n }\\n narrowImage {\\n ...AccessibleImage_accessibleImage\\n }\\n ...AdvertWrapper_activeProductAdvert\\n}\\n\\nfragment Block_block on ContentPieceBlock {\\n __isContentPieceBlock: __typename\\n __typename\\n ... on TextBlock {\\n id\\n ...TextBlock_block\\n }\\n ... on ImageBlock {\\n id\\n ...ImageBlock_block\\n }\\n ... on QuoteBlock {\\n id\\n ...QuoteBlock_block\\n }\\n}\\n\\nfragment Block_glossaryTerms on GlossaryTermConnection {\\n ...TextBlock_glossaryTerms\\n}\\n\\nfragment ContentAuthorAndMetadata_author on Author {\\n id\\n byline\\n profilePicture {\\n ...Avatar_image\\n }\\n ...AuthorLinkWrapper_author\\n}\\n\\nfragment ContentDownloadBlock_authorization on Authorization {\\n roles {\\n isB2bUser\\n }\\n}\\n\\nfragment ContentDownloadBlock_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n ...DownloadContentDropdown_contentPiece\\n isAvailableToProducts\\n}\\n\\nfragment ContentFooter_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n id\\n title\\n deepLink\\n canonicalLink\\n slug\\n mostRelevantTags(first: 30) {\\n edges {\\n node {\\n __typename\\n ...Tag_tag\\n ... on Node {\\n __isNode: __typename\\n id\\n }\\n }\\n }\\n }\\n}\\n\\nfragment ContentHeaderDetails_authorization on Authorization {\\n roles {\\n isB2bUser\\n }\\n}\\n\\nfragment ContentHeaderDetails_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n ...ListenButton_contentPiece\\n ...ContentPieceBookmarkIcon_contentPiece\\n ...ContentDownloadBlock_contentPiece\\n id\\n title\\n deepLink\\n canonicalLink\\n slug\\n}\\n\\nfragment ContentHeader_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n ...DefaultContentHeader_contentPiece\\n ...EvergreenContentHeader_contentPiece\\n contentPieceType {\\n name\\n }\\n}\\n\\nfragment ContentMetadata_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n consumptionTime\\n dateUpdatedDisplay\\n contentPieceType {\\n isEvergreen\\n }\\n author {\\n byline\\n ...AuthorLinkWrapper_author\\n id\\n }\\n}\\n\\nfragment ContentPieceBookmarkIcon_contentPiece on ContentPiece {\\n id\\n isBookmarked\\n title\\n}\\n\\nfragment ContentPieceCardWrapper_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n id\\n title\\n subtitle\\n slug\\n headerImage {\\n ...ServerImage_image\\n }\\n mostRelevantTags(first: 2) {\\n edges {\\n node {\\n __typename\\n ...Tag_tag\\n ... on Node {\\n __isNode: __typename\\n id\\n }\\n }\\n }\\n }\\n dateUpdatedDisplay\\n author {\\n id\\n byline\\n slug\\n isActive\\n }\\n canonicalLink\\n contentPieceType {\\n name\\n publicName\\n }\\n ...authorization_contentPiece\\n ...ContentPieceBookmarkIcon_contentPiece\\n}\\n\\nfragment ContentPieceSEO_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n title\\n imageForSeo: headerImage {\\n url: full\\n }\\n subtitle\\n firstPublishedAt\\n id\\n ... on PublicContentPiece {\\n globalContentPieceId\\n }\\n byline\\n seoTitle\\n searchDescription\\n canonicalLink\\n}\\n\\nfragment ContentPieceSponsor_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n sponsoringCompany {\\n id\\n name\\n link\\n logo {\\n ...ServerImage_image\\n }\\n }\\n}\\n\\nfragment DefaultContentHeader_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n ...ContentHeaderDetails_contentPiece\\n ...AudioOnlyBanner_contentPiece\\n ...ContentMetadata_contentPiece\\n id\\n title\\n headerImage {\\n ...ServerImage_image\\n }\\n author {\\n ...AuthorLinkWrapper_author\\n ...ContentAuthorAndMetadata_author\\n id\\n }\\n}\\n\\nfragment DefaultLayout_viewer on Viewer {\\n ...useEnrollInExperiment_viewer\\n authorization {\\n ...Navigation_authorization\\n }\\n}\\n\\nfragment DownloadContentDropdownContentPieceRefetch_viewer_1QxYRk on Viewer {\\n contentPieceTranslation: contentPiece(slugOrId: $slugOrId) {\\n __typename\\n id\\n title\\n isAvailableToProducts\\n blocks {\\n __typename\\n ...DownloadContentDropdown_blocks\\n ... on Node {\\n __isNode: __typename\\n id\\n }\\n }\\n keyInsightsBlocks {\\n id\\n ...DownloadContentDropdown_blocks\\n }\\n }\\n}\\n\\nfragment DownloadContentDropdown_blocks on ContentPieceBlock {\\n __isContentPieceBlock: __typename\\n ... on TextBlock {\\n textMarkdown\\n }\\n}\\n\\nfragment DownloadContentDropdown_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n localeMapping {\\n languageCode\\n contentPieceId\\n }\\n}\\n\\nfragment EvergreenContentHeader_authorization on Authorization {\\n roles {\\n isB2bUser\\n }\\n}\\n\\nfragment EvergreenContentHeader_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n ...ContentMetadata_contentPiece\\n ...ListenButton_contentPiece\\n ...ContentPieceSponsor_contentPiece\\n ...ContentPieceBookmarkIcon_contentPiece\\n ...ContentDownloadBlock_contentPiece\\n canonicalLink\\n id\\n deepLink\\n title\\n slug\\n headerImage {\\n ...ServerImage_image\\n }\\n}\\n\\nfragment ImageBlock_block on ImageBlock {\\n image {\\n ...ServerImage_image\\n }\\n alt\\n caption\\n link\\n}\\n\\nfragment InlineAdvert_viewer on Viewer {\\n adverts {\\n newsletterLatestRandom {\\n id\\n title\\n trackingTitle\\n image {\\n ...AccessibleImageWithLink_accessibleImage\\n }\\n button {\\n text\\n link\\n }\\n content {\\n __typename\\n ... on TextBlock {\\n textMarkdown\\n }\\n ... on ImageBlock {\\n ...ImageBlock_block\\n }\\n ... on Node {\\n __isNode: __typename\\n id\\n }\\n }\\n disclaimer {\\n __typename\\n ... on TextBlock {\\n textMarkdown\\n }\\n ... on ImageBlock {\\n ...ImageBlock_block\\n }\\n ... on Node {\\n __isNode: __typename\\n id\\n }\\n }\\n }\\n }\\n}\\n\\nfragment KeyInsightsBlock_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n keyInsightsBlocks {\\n id\\n textMarkdown\\n }\\n}\\n\\nfragment KeyInsightsCarousel_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n keyInsightsBlocks {\\n id\\n textMarkdown\\n }\\n}\\n\\nfragment KeyInsights_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n ...KeyInsightsCarousel_contentPiece\\n ...KeyInsightsBlock_contentPiece\\n keyInsightsBlocks {\\n id\\n textMarkdown\\n }\\n}\\n\\nfragment ListenButton_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n id\\n title\\n trackingTitle\\n subtitle\\n readingTime\\n isPremium\\n hasBlocks\\n hasAudio\\n contentPieceType {\\n name\\n trackingName\\n }\\n ...AudioOnlyBanner_contentPiece\\n}\\n\\nfragment MainContentSectionViewer_viewer_1QxYRk on Viewer {\\n ...useEnrollInExperiment_viewer\\n ...DownloadContentDropdownContentPieceRefetch_viewer_1QxYRk\\n ...InlineAdvert_viewer\\n}\\n\\nfragment MainContentSection_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n ...ContentPieceSEO_contentPiece\\n ...KeyInsights_contentPiece\\n ...ContentHeader_contentPiece\\n ...ContentFooter_contentPiece\\n title\\n headerImage {\\n ...ServerImage_image\\n }\\n globalContentPieceId\\n trackingTitle\\n subtitle\\n firstPublishedAt\\n readingTime\\n isPremium\\n deepLink\\n hasBlocks\\n hasAudio\\n id\\n canonicalLink\\n byline\\n contentPieceType {\\n name\\n trackingName\\n }\\n blocks {\\n __typename\\n ...Block_block\\n ... on Node {\\n __isNode: __typename\\n id\\n }\\n }\\n glossaryTerms {\\n ...Block_glossaryTerms\\n }\\n ...MentionedAssets_contentPiece\\n}\\n\\nfragment MentionedAssets_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n title\\n financialAssets {\\n __typename\\n symbol\\n name\\n logo {\\n thumbnail\\n }\\n id\\n }\\n}\\n\\nfragment MostPopularContent_viewer on Viewer {\\n authorization {\\n ...authorization_authorization\\n }\\n mostPopularContentPieces(first: 5) {\\n edges {\\n node {\\n __typename\\n globalContentPieceId\\n ...ContentPieceCardWrapper_contentPiece\\n id\\n }\\n }\\n }\\n}\\n\\nfragment Navigation_authorization on Authorization {\\n roles {\\n isB2bUser\\n }\\n}\\n\\nfragment NestedSignUp_viewer on Viewer {\\n ...useEnrollInExperiment_viewer\\n}\\n\\nfragment PaywallBanner_viewer on Viewer {\\n ...PaywallForm_viewer\\n ...useEnrollInExperiment_viewer\\n}\\n\\nfragment PaywallForm_viewer on Viewer {\\n ...NestedSignUp_viewer\\n ...usePricing_viewer\\n}\\n\\nfragment QuoteBlock_block on QuoteBlock {\\n quote\\n caption\\n}\\n\\nfragment RelatedContentPieces_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n globalContentPieceId\\n relatedContentPieces {\\n __typename\\n id\\n globalContentPieceId\\n ...ContentPieceCardWrapper_contentPiece\\n }\\n}\\n\\nfragment RelatedContentPieces_viewer on Viewer {\\n dailyContentSelection(first: 8) {\\n edges {\\n node {\\n __typename\\n __isContentPieceInterface: __typename\\n id\\n globalContentPieceId\\n ...ContentPieceCardWrapper_contentPiece\\n }\\n }\\n }\\n contentPieces(first: 8, contentPieceType: \\\"INSIGHT\\\", filterUncompletedOnly: true) {\\n edges {\\n node {\\n __typename\\n id\\n globalContentPieceId\\n ...ContentPieceCardWrapper_contentPiece\\n }\\n }\\n }\\n ...useEnrollInExperiment_viewer\\n}\\n\\nfragment ServerImage_image on URLImage {\\n full\\n}\\n\\nfragment SingleContentPiece_authorization on Authorization {\\n ...authorization_authorization\\n ...ContentHeaderDetails_authorization\\n ...ContentDownloadBlock_authorization\\n ...EvergreenContentHeader_authorization\\n roles {\\n isPreviewingContentAllowance\\n isPreviewing\\n isAnonymous\\n hasPremiumSubscription\\n isFreemium\\n }\\n}\\n\\nfragment SingleContentPiece_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n ...AudioOnlyBanner_contentPiece\\n ...authorization_contentPiece\\n ...MainContentSection_contentPiece\\n ...RelatedContentPieces_contentPiece\\n globalContentPieceId\\n trackingTitle\\n isPremium\\n hasBlocks\\n hasAudio\\n contentPieceType {\\n name\\n trackingName\\n isAvailableForFreemium\\n }\\n sponsoringCompany {\\n name\\n id\\n }\\n activeProductAdvert {\\n ...BannerAdvert_activeProductAdvert\\n id\\n }\\n}\\n\\nfragment SingleContentPiece_viewer_1QxYRk on Viewer {\\n features\\n ...PaywallBanner_viewer\\n ...DefaultLayout_viewer\\n ...useEnrollInExperiment_viewer\\n ...MostPopularContent_viewer\\n ...MainContentSectionViewer_viewer_1QxYRk\\n ...RelatedContentPieces_viewer\\n}\\n\\nfragment Tag_tag on GenericTag {\\n __isGenericTag: __typename\\n __typename\\n ... on AssetClassTag {\\n name\\n slug\\n }\\n ... on GeographyTag {\\n name\\n slug\\n }\\n ... on ContentTag {\\n name\\n slug\\n }\\n}\\n\\nfragment TextBlock_block on TextBlock {\\n textMarkdown\\n}\\n\\nfragment TextBlock_glossaryTerms on GlossaryTermConnection {\\n ...TextWithGlossary_glossaryTerms\\n}\\n\\nfragment TextWithGlossary_glossaryTerms on GlossaryTermConnection {\\n edges {\\n node {\\n id\\n title\\n definitionMarkdown\\n slug\\n }\\n }\\n}\\n\\nfragment authorization_authorization on Authorization {\\n roles {\\n isPreviewingContentAllowance\\n isPreviewing\\n isAnonymous\\n hasPremiumSubscription\\n isFreemium\\n }\\n}\\n\\nfragment authorization_contentPiece on ContentPieceInterface {\\n __isContentPieceInterface: __typename\\n isPremium\\n contentPieceType {\\n isAvailableForFreemium\\n }\\n}\\n\\nfragment useEnrollInExperiment_viewer on Viewer {\\n experiments {\\n name\\n variant {\\n name\\n config {\\n maxContentPieceAllowance\\n }\\n id\\n }\\n id\\n }\\n}\\n\\nfragment usePricing_PricingConfig on PricingConfig {\\n stripeId\\n amount\\n currency\\n currencySymbol\\n trialDays\\n discount {\\n discountPct\\n couponDurationInMonths\\n couponRepetition\\n discountFixed {\\n currencySymbol\\n amount\\n }\\n id\\n }\\n}\\n\\nfragment usePricing_viewer on Viewer {\\n webPricingConfig {\\n name\\n yearly {\\n ...usePricing_PricingConfig\\n id\\n }\\n monthly {\\n ...usePricing_PricingConfig\\n id\\n }\\n id\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = 'efca6ae3d055224f71d3f0f77e0ccaea';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentPieceSEO_contentPiece = {\n readonly title: string;\n readonly imageForSeo: {\n readonly url: string;\n };\n readonly subtitle: string;\n readonly firstPublishedAt: string;\n readonly id: string;\n readonly byline: string | null;\n readonly seoTitle: string | null;\n readonly searchDescription: string | null;\n readonly canonicalLink: string;\n readonly globalContentPieceId?: string | undefined;\n readonly \" $refType\": \"ContentPieceSEO_contentPiece\";\n};\nexport type ContentPieceSEO_contentPiece$data = ContentPieceSEO_contentPiece;\nexport type ContentPieceSEO_contentPiece$key = {\n readonly \" $data\"?: ContentPieceSEO_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentPieceSEO_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentPieceSEO_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": \"imageForSeo\",\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"headerImage\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": \"url\",\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"full\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"subtitle\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstPublishedAt\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"byline\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"seoTitle\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"searchDescription\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"canonicalLink\",\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"globalContentPieceId\",\n \"storageKey\": null\n }\n ],\n \"type\": \"PublicContentPiece\",\n \"abstractKey\": null\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '3b719b59be436c26c6e5e43488a5d337';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ContentPieceSponsor_contentPiece = {\n readonly sponsoringCompany: {\n readonly id: string;\n readonly name: string;\n readonly link: string | null;\n readonly logo: {\n readonly \" $fragmentRefs\": FragmentRefs<\"ServerImage_image\">;\n };\n } | null;\n readonly \" $refType\": \"ContentPieceSponsor_contentPiece\";\n};\nexport type ContentPieceSponsor_contentPiece$data = ContentPieceSponsor_contentPiece;\nexport type ContentPieceSponsor_contentPiece$key = {\n readonly \" $data\"?: ContentPieceSponsor_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentPieceSponsor_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ContentPieceSponsor_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SponsoringCompany\",\n \"kind\": \"LinkedField\",\n \"name\": \"sponsoringCompany\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"link\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"logo\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ServerImage_image\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '9a676dee90da812af2c87d7bc4a99f97';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type DefaultContentHeader_contentPiece = {\n readonly id: string;\n readonly title: string;\n readonly headerImage: {\n readonly \" $fragmentRefs\": FragmentRefs<\"ServerImage_image\">;\n };\n readonly author: {\n readonly \" $fragmentRefs\": FragmentRefs<\"AuthorLinkWrapper_author\" | \"ContentAuthorAndMetadata_author\">;\n } | null;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentHeaderDetails_contentPiece\" | \"AudioOnlyBanner_contentPiece\" | \"ContentMetadata_contentPiece\">;\n readonly \" $refType\": \"DefaultContentHeader_contentPiece\";\n};\nexport type DefaultContentHeader_contentPiece$data = DefaultContentHeader_contentPiece;\nexport type DefaultContentHeader_contentPiece$key = {\n readonly \" $data\"?: DefaultContentHeader_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"DefaultContentHeader_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"DefaultContentHeader_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"headerImage\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ServerImage_image\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Author\",\n \"kind\": \"LinkedField\",\n \"name\": \"author\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"AuthorLinkWrapper_author\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentAuthorAndMetadata_author\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentHeaderDetails_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"AudioOnlyBanner_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentMetadata_contentPiece\"\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = 'ee0fda622343f456510f2f5c35d9d3c8';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type DownloadContentDropdownContentPieceRefetchQueryVariables = {\n slugOrId: string;\n};\nexport type DownloadContentDropdownContentPieceRefetchQueryResponse = {\n readonly viewer: {\n readonly \" $fragmentRefs\": FragmentRefs<\"DownloadContentDropdownContentPieceRefetch_viewer\">;\n };\n};\nexport type DownloadContentDropdownContentPieceRefetchQuery = {\n readonly response: DownloadContentDropdownContentPieceRefetchQueryResponse;\n readonly variables: DownloadContentDropdownContentPieceRefetchQueryVariables;\n};\n\n\n\n/*\nquery DownloadContentDropdownContentPieceRefetchQuery(\n $slugOrId: String!\n) {\n viewer {\n ...DownloadContentDropdownContentPieceRefetch_viewer_1QxYRk\n id\n }\n}\n\nfragment DownloadContentDropdownContentPieceRefetch_viewer_1QxYRk on Viewer {\n contentPieceTranslation: contentPiece(slugOrId: $slugOrId) {\n __typename\n id\n title\n isAvailableToProducts\n blocks {\n __typename\n ...DownloadContentDropdown_blocks\n ... on Node {\n __isNode: __typename\n id\n }\n }\n keyInsightsBlocks {\n id\n ...DownloadContentDropdown_blocks\n }\n }\n}\n\nfragment DownloadContentDropdown_blocks on ContentPieceBlock {\n __isContentPieceBlock: __typename\n ... on TextBlock {\n textMarkdown\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"slugOrId\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"slugOrId\",\n \"variableName\": \"slugOrId\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv4 = {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"textMarkdown\",\n \"storageKey\": null\n }\n ],\n \"type\": \"TextBlock\",\n \"abstractKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"DownloadContentDropdownContentPieceRefetchQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": (v1/*: any*/),\n \"kind\": \"FragmentSpread\",\n \"name\": \"DownloadContentDropdownContentPieceRefetch_viewer\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"DownloadContentDropdownContentPieceRefetchQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": \"contentPieceTranslation\",\n \"args\": (v1/*: any*/),\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"contentPiece\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isAvailableToProducts\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"blocks\",\n \"plural\": true,\n \"selections\": [\n (v2/*: any*/),\n {\n \"kind\": \"TypeDiscriminator\",\n \"abstractKey\": \"__isContentPieceBlock\"\n },\n (v4/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v3/*: any*/)\n ],\n \"type\": \"Node\",\n \"abstractKey\": \"__isNode\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"TextBlock\",\n \"kind\": \"LinkedField\",\n \"name\": \"keyInsightsBlocks\",\n \"plural\": true,\n \"selections\": [\n (v3/*: any*/),\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n (v4/*: any*/)\n ],\n \"type\": \"ContentPieceBlock\",\n \"abstractKey\": \"__isContentPieceBlock\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"66aaaee571ab8dac1b0a532338ed5ce6\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"DownloadContentDropdownContentPieceRefetchQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query DownloadContentDropdownContentPieceRefetchQuery(\\n $slugOrId: String!\\n) {\\n viewer {\\n ...DownloadContentDropdownContentPieceRefetch_viewer_1QxYRk\\n id\\n }\\n}\\n\\nfragment DownloadContentDropdownContentPieceRefetch_viewer_1QxYRk on Viewer {\\n contentPieceTranslation: contentPiece(slugOrId: $slugOrId) {\\n __typename\\n id\\n title\\n isAvailableToProducts\\n blocks {\\n __typename\\n ...DownloadContentDropdown_blocks\\n ... on Node {\\n __isNode: __typename\\n id\\n }\\n }\\n keyInsightsBlocks {\\n id\\n ...DownloadContentDropdown_blocks\\n }\\n }\\n}\\n\\nfragment DownloadContentDropdown_blocks on ContentPieceBlock {\\n __isContentPieceBlock: __typename\\n ... on TextBlock {\\n textMarkdown\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = '20608af4c35f47b64db75489f5f762db';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\nimport DownloadContentDropdownContentPieceRefetchQuery from \"./DownloadContentDropdownContentPieceRefetchQuery.graphql\";\nimport { FragmentRefs } from \"relay-runtime\";\nexport type DownloadContentDropdownContentPieceRefetch_viewer = {\n readonly contentPieceTranslation: {\n readonly id: string;\n readonly title: string;\n readonly isAvailableToProducts: boolean;\n readonly blocks: ReadonlyArray<{\n readonly \" $fragmentRefs\": FragmentRefs<\"DownloadContentDropdown_blocks\">;\n }> | null;\n readonly keyInsightsBlocks: ReadonlyArray<{\n readonly id: string;\n readonly \" $fragmentRefs\": FragmentRefs<\"DownloadContentDropdown_blocks\">;\n }> | null;\n } | null;\n readonly \" $refType\": \"DownloadContentDropdownContentPieceRefetch_viewer\";\n};\nexport type DownloadContentDropdownContentPieceRefetch_viewer$data = DownloadContentDropdownContentPieceRefetch_viewer;\nexport type DownloadContentDropdownContentPieceRefetch_viewer$key = {\n readonly \" $data\"?: DownloadContentDropdownContentPieceRefetch_viewer$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"DownloadContentDropdownContentPieceRefetch_viewer\">;\n};\n\n\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv1 = {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"DownloadContentDropdown_blocks\"\n};\nreturn {\n \"argumentDefinitions\": [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"slugOrId\"\n }\n ],\n \"kind\": \"Fragment\",\n \"metadata\": {\n \"refetch\": {\n \"connection\": null,\n \"fragmentPathInResult\": [\n \"viewer\"\n ],\n \"operation\": DownloadContentDropdownContentPieceRefetchQuery\n }\n },\n \"name\": \"DownloadContentDropdownContentPieceRefetch_viewer\",\n \"selections\": [\n {\n \"alias\": \"contentPieceTranslation\",\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"slugOrId\",\n \"variableName\": \"slugOrId\"\n }\n ],\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"contentPiece\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isAvailableToProducts\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"blocks\",\n \"plural\": true,\n \"selections\": [\n (v1/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"TextBlock\",\n \"kind\": \"LinkedField\",\n \"name\": \"keyInsightsBlocks\",\n \"plural\": true,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n})();\n(node as any).hash = '20608af4c35f47b64db75489f5f762db';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type DownloadContentDropdown_blocks = ReadonlyArray<{\n readonly textMarkdown?: string | undefined;\n readonly \" $refType\": \"DownloadContentDropdown_blocks\";\n}>;\nexport type DownloadContentDropdown_blocks$data = DownloadContentDropdown_blocks;\nexport type DownloadContentDropdown_blocks$key = ReadonlyArray<{\n readonly \" $data\"?: DownloadContentDropdown_blocks$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"DownloadContentDropdown_blocks\">;\n}>;\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": {\n \"plural\": true\n },\n \"name\": \"DownloadContentDropdown_blocks\",\n \"selections\": [\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"textMarkdown\",\n \"storageKey\": null\n }\n ],\n \"type\": \"TextBlock\",\n \"abstractKey\": null\n }\n ],\n \"type\": \"ContentPieceBlock\",\n \"abstractKey\": \"__isContentPieceBlock\"\n};\n(node as any).hash = 'aa167e4a063a11c8d75886b8aabf5477';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type DownloadContentDropdown_contentPiece = {\n readonly localeMapping: ReadonlyArray<{\n readonly languageCode: string;\n readonly contentPieceId: string | null;\n } | null> | null;\n readonly \" $refType\": \"DownloadContentDropdown_contentPiece\";\n};\nexport type DownloadContentDropdown_contentPiece$data = DownloadContentDropdown_contentPiece;\nexport type DownloadContentDropdown_contentPiece$key = {\n readonly \" $data\"?: DownloadContentDropdown_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"DownloadContentDropdown_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"DownloadContentDropdown_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"LocaleMapping\",\n \"kind\": \"LinkedField\",\n \"name\": \"localeMapping\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"languageCode\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"contentPieceId\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '8bc0924f50fbc3eef3d2c2dac2f709e7';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type EvergreenContentHeader_authorization = {\n readonly roles: {\n readonly isB2bUser: boolean;\n };\n readonly \" $refType\": \"EvergreenContentHeader_authorization\";\n};\nexport type EvergreenContentHeader_authorization$data = EvergreenContentHeader_authorization;\nexport type EvergreenContentHeader_authorization$key = {\n readonly \" $data\"?: EvergreenContentHeader_authorization$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"EvergreenContentHeader_authorization\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"EvergreenContentHeader_authorization\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"RoleFlags\",\n \"kind\": \"LinkedField\",\n \"name\": \"roles\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isB2bUser\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Authorization\",\n \"abstractKey\": null\n};\n(node as any).hash = '5ebe31fb5ac576d99483216c14af69b4';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type EvergreenContentHeader_contentPiece = {\n readonly canonicalLink: string;\n readonly id: string;\n readonly deepLink: string;\n readonly title: string;\n readonly slug: string;\n readonly headerImage: {\n readonly \" $fragmentRefs\": FragmentRefs<\"ServerImage_image\">;\n };\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentMetadata_contentPiece\" | \"ListenButton_contentPiece\" | \"ContentPieceSponsor_contentPiece\" | \"ContentPieceBookmarkIcon_contentPiece\" | \"ContentDownloadBlock_contentPiece\">;\n readonly \" $refType\": \"EvergreenContentHeader_contentPiece\";\n};\nexport type EvergreenContentHeader_contentPiece$data = EvergreenContentHeader_contentPiece;\nexport type EvergreenContentHeader_contentPiece$key = {\n readonly \" $data\"?: EvergreenContentHeader_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"EvergreenContentHeader_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"EvergreenContentHeader_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"canonicalLink\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deepLink\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"slug\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"headerImage\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ServerImage_image\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentMetadata_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ListenButton_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentPieceSponsor_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentPieceBookmarkIcon_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentDownloadBlock_contentPiece\"\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = 'ad80642e0e952d36e6d61d545cb34a14';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type InlineAdvert_viewer = {\n readonly adverts: {\n readonly newsletterLatestRandom: {\n readonly id: string;\n readonly title: string;\n readonly trackingTitle: string;\n readonly image: {\n readonly \" $fragmentRefs\": FragmentRefs<\"AccessibleImageWithLink_accessibleImage\">;\n } | null;\n readonly button: {\n readonly text: string;\n readonly link: string;\n } | null;\n readonly content: ReadonlyArray<{\n readonly __typename: \"TextBlock\";\n readonly textMarkdown: string;\n } | {\n readonly __typename: \"ImageBlock\";\n readonly \" $fragmentRefs\": FragmentRefs<\"ImageBlock_block\">;\n } | {\n /*This will never be '%other', but we need some\n value in case none of the concrete values match.*/\n readonly __typename: \"%other\";\n }> | null;\n readonly disclaimer: ReadonlyArray<{\n readonly __typename: \"TextBlock\";\n readonly textMarkdown: string;\n } | {\n readonly __typename: \"ImageBlock\";\n readonly \" $fragmentRefs\": FragmentRefs<\"ImageBlock_block\">;\n } | {\n /*This will never be '%other', but we need some\n value in case none of the concrete values match.*/\n readonly __typename: \"%other\";\n }> | null;\n } | null;\n };\n readonly \" $refType\": \"InlineAdvert_viewer\";\n};\nexport type InlineAdvert_viewer$data = InlineAdvert_viewer;\nexport type InlineAdvert_viewer$key = {\n readonly \" $data\"?: InlineAdvert_viewer$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"InlineAdvert_viewer\">;\n};\n\n\n\nconst node: ReaderFragment = (function(){\nvar v0 = [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"textMarkdown\",\n \"storageKey\": null\n }\n ],\n \"type\": \"TextBlock\",\n \"abstractKey\": null\n },\n {\n \"kind\": \"InlineFragment\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ImageBlock_block\"\n }\n ],\n \"type\": \"ImageBlock\",\n \"abstractKey\": null\n }\n];\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"InlineAdvert_viewer\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Adverts\",\n \"kind\": \"LinkedField\",\n \"name\": \"adverts\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Advert\",\n \"kind\": \"LinkedField\",\n \"name\": \"newsletterLatestRandom\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trackingTitle\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"AccessibleURLImageWithLink\",\n \"kind\": \"LinkedField\",\n \"name\": \"image\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"AccessibleImageWithLink_accessibleImage\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Button\",\n \"kind\": \"LinkedField\",\n \"name\": \"button\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"text\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"link\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"content\",\n \"plural\": true,\n \"selections\": (v0/*: any*/),\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"disclaimer\",\n \"plural\": true,\n \"selections\": (v0/*: any*/),\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n})();\n(node as any).hash = '13f67ac61caa4c72457b7b11a9b40e5b';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type KeyInsightsBlock_contentPiece = {\n readonly keyInsightsBlocks: ReadonlyArray<{\n readonly id: string;\n readonly textMarkdown: string;\n }> | null;\n readonly \" $refType\": \"KeyInsightsBlock_contentPiece\";\n};\nexport type KeyInsightsBlock_contentPiece$data = KeyInsightsBlock_contentPiece;\nexport type KeyInsightsBlock_contentPiece$key = {\n readonly \" $data\"?: KeyInsightsBlock_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"KeyInsightsBlock_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"KeyInsightsBlock_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"TextBlock\",\n \"kind\": \"LinkedField\",\n \"name\": \"keyInsightsBlocks\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"textMarkdown\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = 'e5d663bbe9fcfb8268d3efad887a4947';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type KeyInsightsCarousel_contentPiece = {\n readonly keyInsightsBlocks: ReadonlyArray<{\n readonly id: string;\n readonly textMarkdown: string;\n }> | null;\n readonly \" $refType\": \"KeyInsightsCarousel_contentPiece\";\n};\nexport type KeyInsightsCarousel_contentPiece$data = KeyInsightsCarousel_contentPiece;\nexport type KeyInsightsCarousel_contentPiece$key = {\n readonly \" $data\"?: KeyInsightsCarousel_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"KeyInsightsCarousel_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"KeyInsightsCarousel_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"TextBlock\",\n \"kind\": \"LinkedField\",\n \"name\": \"keyInsightsBlocks\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"textMarkdown\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = 'f69eed8147e5761f4ddba593ec880d3d';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type KeyInsights_contentPiece = {\n readonly keyInsightsBlocks: ReadonlyArray<{\n readonly id: string;\n readonly textMarkdown: string;\n }> | null;\n readonly \" $fragmentRefs\": FragmentRefs<\"KeyInsightsCarousel_contentPiece\" | \"KeyInsightsBlock_contentPiece\">;\n readonly \" $refType\": \"KeyInsights_contentPiece\";\n};\nexport type KeyInsights_contentPiece$data = KeyInsights_contentPiece;\nexport type KeyInsights_contentPiece$key = {\n readonly \" $data\"?: KeyInsights_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"KeyInsights_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"KeyInsights_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"TextBlock\",\n \"kind\": \"LinkedField\",\n \"name\": \"keyInsightsBlocks\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"textMarkdown\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"KeyInsightsCarousel_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"KeyInsightsBlock_contentPiece\"\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '5146a91fb79f69b1744d6e1aa2c861f7';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type ListenButton_contentPiece = {\n readonly id: string;\n readonly title: string;\n readonly trackingTitle: string;\n readonly subtitle: string;\n readonly readingTime: number;\n readonly isPremium: boolean;\n readonly hasBlocks: boolean;\n readonly hasAudio: boolean;\n readonly contentPieceType: {\n readonly name: string;\n readonly trackingName: string;\n };\n readonly \" $fragmentRefs\": FragmentRefs<\"AudioOnlyBanner_contentPiece\">;\n readonly \" $refType\": \"ListenButton_contentPiece\";\n};\nexport type ListenButton_contentPiece$data = ListenButton_contentPiece;\nexport type ListenButton_contentPiece$key = {\n readonly \" $data\"?: ListenButton_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"ListenButton_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"ListenButton_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trackingTitle\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"subtitle\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"readingTime\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPremium\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasBlocks\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasAudio\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceType\",\n \"kind\": \"LinkedField\",\n \"name\": \"contentPieceType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trackingName\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"AudioOnlyBanner_contentPiece\"\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '8d3ec2d816ab779df6dc42609920f247';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type MainContentSectionViewer_viewer = {\n readonly \" $fragmentRefs\": FragmentRefs<\"useEnrollInExperiment_viewer\" | \"DownloadContentDropdownContentPieceRefetch_viewer\" | \"InlineAdvert_viewer\">;\n readonly \" $refType\": \"MainContentSectionViewer_viewer\";\n};\nexport type MainContentSectionViewer_viewer$data = MainContentSectionViewer_viewer;\nexport type MainContentSectionViewer_viewer$key = {\n readonly \" $data\"?: MainContentSectionViewer_viewer$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"MainContentSectionViewer_viewer\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"slugOrId\"\n }\n ],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"MainContentSectionViewer_viewer\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"useEnrollInExperiment_viewer\"\n },\n {\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"slugOrId\",\n \"variableName\": \"slugOrId\"\n }\n ],\n \"kind\": \"FragmentSpread\",\n \"name\": \"DownloadContentDropdownContentPieceRefetch_viewer\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"InlineAdvert_viewer\"\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n(node as any).hash = 'e7222ed0c79625f97077736cac589eca';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type MainContentSection_contentPiece = {\n readonly title: string;\n readonly headerImage: {\n readonly \" $fragmentRefs\": FragmentRefs<\"ServerImage_image\">;\n };\n readonly globalContentPieceId: string;\n readonly trackingTitle: string;\n readonly subtitle: string;\n readonly firstPublishedAt: string;\n readonly readingTime: number;\n readonly isPremium: boolean;\n readonly deepLink: string;\n readonly hasBlocks: boolean;\n readonly hasAudio: boolean;\n readonly id: string;\n readonly canonicalLink: string;\n readonly byline: string | null;\n readonly contentPieceType: {\n readonly name: string;\n readonly trackingName: string;\n };\n readonly blocks: ReadonlyArray<{\n readonly \" $fragmentRefs\": FragmentRefs<\"Block_block\">;\n }> | null;\n readonly glossaryTerms: {\n readonly \" $fragmentRefs\": FragmentRefs<\"Block_glossaryTerms\">;\n };\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentPieceSEO_contentPiece\" | \"KeyInsights_contentPiece\" | \"ContentHeader_contentPiece\" | \"ContentFooter_contentPiece\" | \"MentionedAssets_contentPiece\">;\n readonly \" $refType\": \"MainContentSection_contentPiece\";\n};\nexport type MainContentSection_contentPiece$data = MainContentSection_contentPiece;\nexport type MainContentSection_contentPiece$key = {\n readonly \" $data\"?: MainContentSection_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"MainContentSection_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"MainContentSection_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"URLImage\",\n \"kind\": \"LinkedField\",\n \"name\": \"headerImage\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ServerImage_image\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"globalContentPieceId\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trackingTitle\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"subtitle\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"firstPublishedAt\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"readingTime\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPremium\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"deepLink\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasBlocks\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasAudio\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"canonicalLink\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"byline\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceType\",\n \"kind\": \"LinkedField\",\n \"name\": \"contentPieceType\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trackingName\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"blocks\",\n \"plural\": true,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"Block_block\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"GlossaryTermConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"glossaryTerms\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"Block_glossaryTerms\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentPieceSEO_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"KeyInsights_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentHeader_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentFooter_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"MentionedAssets_contentPiece\"\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '3fa74c322be4353a115be97d7e6b5a41';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type MentionedAssets_contentPiece = {\n readonly title: string;\n readonly financialAssets: ReadonlyArray<{\n readonly symbol: string;\n readonly name: string | null;\n readonly logo: {\n readonly thumbnail: string | null;\n };\n }> | null;\n readonly \" $refType\": \"MentionedAssets_contentPiece\";\n};\nexport type MentionedAssets_contentPiece$data = MentionedAssets_contentPiece;\nexport type MentionedAssets_contentPiece$key = {\n readonly \" $data\"?: MentionedAssets_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"MentionedAssets_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"MentionedAssets_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"title\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"financialAssets\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"symbol\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"FinancialAssetLogo\",\n \"kind\": \"LinkedField\",\n \"name\": \"logo\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"thumbnail\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n(node as any).hash = '40eb631cc64a48567e475b422b3fb2ff';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type MostPopularContent_viewer = {\n readonly authorization: {\n readonly \" $fragmentRefs\": FragmentRefs<\"authorization_authorization\">;\n };\n readonly mostPopularContentPieces: {\n readonly edges: ReadonlyArray<{\n readonly node: {\n readonly globalContentPieceId: string;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentPieceCardWrapper_contentPiece\">;\n };\n }>;\n } | null;\n readonly \" $refType\": \"MostPopularContent_viewer\";\n};\nexport type MostPopularContent_viewer$data = MostPopularContent_viewer;\nexport type MostPopularContent_viewer$key = {\n readonly \" $data\"?: MostPopularContent_viewer$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"MostPopularContent_viewer\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"encryptedEmail\"\n }\n ],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"MostPopularContent_viewer\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Authorization\",\n \"kind\": \"LinkedField\",\n \"name\": \"authorization\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"authorization_authorization\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 5\n }\n ],\n \"concreteType\": \"ContentPieceConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"mostPopularContentPieces\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceInterfaceNonNullEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"globalContentPieceId\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentPieceCardWrapper_contentPiece\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": \"mostPopularContentPieces(first:5)\"\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n(node as any).hash = 'e8b968e5f800d4b5a48607f64cc62be8';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type NestedSignUp_viewer = {\n readonly \" $fragmentRefs\": FragmentRefs<\"useEnrollInExperiment_viewer\">;\n readonly \" $refType\": \"NestedSignUp_viewer\";\n};\nexport type NestedSignUp_viewer$data = NestedSignUp_viewer;\nexport type NestedSignUp_viewer$key = {\n readonly \" $data\"?: NestedSignUp_viewer$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"NestedSignUp_viewer\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"NestedSignUp_viewer\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"useEnrollInExperiment_viewer\"\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n(node as any).hash = 'c93cca50e77eaa565c55babd6b5f392e';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type PaywallBanner_viewer = {\n readonly \" $fragmentRefs\": FragmentRefs<\"PaywallForm_viewer\" | \"useEnrollInExperiment_viewer\">;\n readonly \" $refType\": \"PaywallBanner_viewer\";\n};\nexport type PaywallBanner_viewer$data = PaywallBanner_viewer;\nexport type PaywallBanner_viewer$key = {\n readonly \" $data\"?: PaywallBanner_viewer$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"PaywallBanner_viewer\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"PaywallBanner_viewer\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"PaywallForm_viewer\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"useEnrollInExperiment_viewer\"\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n(node as any).hash = '9758c1c6647012832658c0071b3465ad';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type PaywallForm_viewer = {\n readonly \" $fragmentRefs\": FragmentRefs<\"NestedSignUp_viewer\" | \"usePricing_viewer\">;\n readonly \" $refType\": \"PaywallForm_viewer\";\n};\nexport type PaywallForm_viewer$data = PaywallForm_viewer;\nexport type PaywallForm_viewer$key = {\n readonly \" $data\"?: PaywallForm_viewer$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"PaywallForm_viewer\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"PaywallForm_viewer\",\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"NestedSignUp_viewer\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"usePricing_viewer\"\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n(node as any).hash = '1e81115a01c0285008a4ba0f09de11e5';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type RelatedContentPieces_contentPiece = {\n readonly globalContentPieceId: string;\n readonly relatedContentPieces: ReadonlyArray<{\n readonly id: string;\n readonly globalContentPieceId: string;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentPieceCardWrapper_contentPiece\">;\n }>;\n readonly \" $refType\": \"RelatedContentPieces_contentPiece\";\n};\nexport type RelatedContentPieces_contentPiece$data = RelatedContentPieces_contentPiece;\nexport type RelatedContentPieces_contentPiece$key = {\n readonly \" $data\"?: RelatedContentPieces_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"RelatedContentPieces_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"globalContentPieceId\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"RelatedContentPieces_contentPiece\",\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"relatedContentPieces\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n (v0/*: any*/),\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentPieceCardWrapper_contentPiece\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n})();\n(node as any).hash = '7b790d3a3b403a5b4ff1955e919eece7';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type RelatedContentPieces_viewer = {\n readonly dailyContentSelection: {\n readonly edges: ReadonlyArray<{\n readonly node: {\n readonly id: string;\n readonly globalContentPieceId: string;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentPieceCardWrapper_contentPiece\">;\n };\n }>;\n };\n readonly contentPieces: {\n readonly edges: ReadonlyArray<{\n readonly node: {\n readonly id: string;\n readonly globalContentPieceId: string;\n readonly \" $fragmentRefs\": FragmentRefs<\"ContentPieceCardWrapper_contentPiece\">;\n };\n }>;\n };\n readonly \" $fragmentRefs\": FragmentRefs<\"useEnrollInExperiment_viewer\">;\n readonly \" $refType\": \"RelatedContentPieces_viewer\";\n};\nexport type RelatedContentPieces_viewer$data = RelatedContentPieces_viewer;\nexport type RelatedContentPieces_viewer$key = {\n readonly \" $data\"?: RelatedContentPieces_viewer$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"RelatedContentPieces_viewer\">;\n};\n\n\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"kind\": \"Literal\",\n \"name\": \"first\",\n \"value\": 8\n},\nv1 = [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceInterfaceNonNullEdge\",\n \"kind\": \"LinkedField\",\n \"name\": \"edges\",\n \"plural\": true,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"node\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"globalContentPieceId\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentPieceCardWrapper_contentPiece\"\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"RelatedContentPieces_viewer\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": [\n (v0/*: any*/)\n ],\n \"concreteType\": \"ContentPieceConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"dailyContentSelection\",\n \"plural\": false,\n \"selections\": (v1/*: any*/),\n \"storageKey\": \"dailyContentSelection(first:8)\"\n },\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Literal\",\n \"name\": \"contentPieceType\",\n \"value\": \"INSIGHT\"\n },\n {\n \"kind\": \"Literal\",\n \"name\": \"filterUncompletedOnly\",\n \"value\": true\n },\n (v0/*: any*/)\n ],\n \"concreteType\": \"ContentPieceConnection\",\n \"kind\": \"LinkedField\",\n \"name\": \"contentPieces\",\n \"plural\": false,\n \"selections\": (v1/*: any*/),\n \"storageKey\": \"contentPieces(contentPieceType:\\\"INSIGHT\\\",filterUncompletedOnly:true,first:8)\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"useEnrollInExperiment_viewer\"\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n})();\n(node as any).hash = '2c4432bde62b84c9a77e51e68bb0e89e';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SingleContentPiece_authorization = {\n readonly roles: {\n readonly isPreviewingContentAllowance: boolean;\n readonly isPreviewing: boolean;\n readonly isAnonymous: boolean;\n readonly hasPremiumSubscription: boolean;\n readonly isFreemium: boolean;\n };\n readonly \" $fragmentRefs\": FragmentRefs<\"authorization_authorization\" | \"ContentHeaderDetails_authorization\" | \"ContentDownloadBlock_authorization\" | \"EvergreenContentHeader_authorization\">;\n readonly \" $refType\": \"SingleContentPiece_authorization\";\n};\nexport type SingleContentPiece_authorization$data = SingleContentPiece_authorization;\nexport type SingleContentPiece_authorization$key = {\n readonly \" $data\"?: SingleContentPiece_authorization$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"SingleContentPiece_authorization\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SingleContentPiece_authorization\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"RoleFlags\",\n \"kind\": \"LinkedField\",\n \"name\": \"roles\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPreviewingContentAllowance\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPreviewing\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isAnonymous\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasPremiumSubscription\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isFreemium\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"authorization_authorization\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentHeaderDetails_authorization\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"ContentDownloadBlock_authorization\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"EvergreenContentHeader_authorization\"\n }\n ],\n \"type\": \"Authorization\",\n \"abstractKey\": null\n};\n(node as any).hash = '86b49e96e4e4749a053d47e1abfeefe5';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SingleContentPiece_contentPiece = {\n readonly globalContentPieceId: string;\n readonly trackingTitle: string;\n readonly isPremium: boolean;\n readonly hasBlocks: boolean;\n readonly hasAudio: boolean;\n readonly contentPieceType: {\n readonly name: string;\n readonly trackingName: string;\n readonly isAvailableForFreemium: boolean;\n };\n readonly sponsoringCompany: {\n readonly name: string;\n } | null;\n readonly activeProductAdvert: {\n readonly \" $fragmentRefs\": FragmentRefs<\"BannerAdvert_activeProductAdvert\">;\n } | null;\n readonly \" $fragmentRefs\": FragmentRefs<\"AudioOnlyBanner_contentPiece\" | \"authorization_contentPiece\" | \"MainContentSection_contentPiece\" | \"RelatedContentPieces_contentPiece\">;\n readonly \" $refType\": \"SingleContentPiece_contentPiece\";\n};\nexport type SingleContentPiece_contentPiece$data = SingleContentPiece_contentPiece;\nexport type SingleContentPiece_contentPiece$key = {\n readonly \" $data\"?: SingleContentPiece_contentPiece$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"SingleContentPiece_contentPiece\">;\n};\n\n\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SingleContentPiece_contentPiece\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"globalContentPieceId\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trackingTitle\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPremium\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasBlocks\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasAudio\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPieceType\",\n \"kind\": \"LinkedField\",\n \"name\": \"contentPieceType\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trackingName\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isAvailableForFreemium\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"SponsoringCompany\",\n \"kind\": \"LinkedField\",\n \"name\": \"sponsoringCompany\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/)\n ],\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ProductAdvert\",\n \"kind\": \"LinkedField\",\n \"name\": \"activeProductAdvert\",\n \"plural\": false,\n \"selections\": [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"BannerAdvert_activeProductAdvert\"\n }\n ],\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"AudioOnlyBanner_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"authorization_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"MainContentSection_contentPiece\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"RelatedContentPieces_contentPiece\"\n }\n ],\n \"type\": \"ContentPieceInterface\",\n \"abstractKey\": \"__isContentPieceInterface\"\n};\n})();\n(node as any).hash = 'f5d800acd2ab2e59c66d29fe1ff416d1';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type SingleContentPiece_viewer = {\n readonly features: ReadonlyArray;\n readonly \" $fragmentRefs\": FragmentRefs<\"PaywallBanner_viewer\" | \"DefaultLayout_viewer\" | \"useEnrollInExperiment_viewer\" | \"MostPopularContent_viewer\" | \"MainContentSectionViewer_viewer\" | \"RelatedContentPieces_viewer\">;\n readonly \" $refType\": \"SingleContentPiece_viewer\";\n};\nexport type SingleContentPiece_viewer$data = SingleContentPiece_viewer;\nexport type SingleContentPiece_viewer$key = {\n readonly \" $data\"?: SingleContentPiece_viewer$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"SingleContentPiece_viewer\">;\n};\n\n\n\nconst node: ReaderFragment = {\n \"argumentDefinitions\": [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"slugOrId\"\n }\n ],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"SingleContentPiece_viewer\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"features\",\n \"storageKey\": null\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"PaywallBanner_viewer\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"DefaultLayout_viewer\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"useEnrollInExperiment_viewer\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"MostPopularContent_viewer\"\n },\n {\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"slugOrId\",\n \"variableName\": \"slugOrId\"\n }\n ],\n \"kind\": \"FragmentSpread\",\n \"name\": \"MainContentSectionViewer_viewer\"\n },\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"RelatedContentPieces_viewer\"\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n(node as any).hash = '48e2d0456706bebb6b8d46bbfc8c237d';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nexport type CreateContentPieceCompletedByAnonymousUserEventInput = {\n contentPieceId: string;\n sessionId: string;\n impressions?: Array | null | undefined;\n deviceContext?: string | null | undefined;\n localIsoDateTimeWithOffset?: string | null | undefined;\n clientMutationId?: string | null | undefined;\n};\nexport type createContentPieceCompletedByAnonymousUserEventMutationVariables = {\n input: CreateContentPieceCompletedByAnonymousUserEventInput;\n};\nexport type createContentPieceCompletedByAnonymousUserEventMutationResponse = {\n readonly createContentPieceCompletedByAnonymousUserEvent: {\n readonly clientMutationId: string | null;\n } | null;\n};\nexport type createContentPieceCompletedByAnonymousUserEventMutation = {\n readonly response: createContentPieceCompletedByAnonymousUserEventMutationResponse;\n readonly variables: createContentPieceCompletedByAnonymousUserEventMutationVariables;\n};\n\n\n\n/*\nmutation createContentPieceCompletedByAnonymousUserEventMutation(\n $input: CreateContentPieceCompletedByAnonymousUserEventInput!\n) {\n createContentPieceCompletedByAnonymousUserEvent(input: $input) {\n clientMutationId\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n ],\n \"concreteType\": \"CreateContentPieceCompletedByAnonymousUserEventPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"createContentPieceCompletedByAnonymousUserEvent\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"clientMutationId\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"createContentPieceCompletedByAnonymousUserEventMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutations\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"createContentPieceCompletedByAnonymousUserEventMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"cf9709c9e9814d0d58c552339545a242\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"createContentPieceCompletedByAnonymousUserEventMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation createContentPieceCompletedByAnonymousUserEventMutation(\\n $input: CreateContentPieceCompletedByAnonymousUserEventInput!\\n) {\\n createContentPieceCompletedByAnonymousUserEvent(input: $input) {\\n clientMutationId\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = 'd088cc98d1082d2fdca9454e38ea57c5';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nexport type CreateContentPieceStartedByAnonymousUserEventInput = {\n contentPieceId: string;\n sessionId: string;\n impressions?: Array | null | undefined;\n deviceContext?: string | null | undefined;\n localIsoDateTimeWithOffset?: string | null | undefined;\n clientMutationId?: string | null | undefined;\n};\nexport type createContentPieceStartedByAnonymousUserEventMutationVariables = {\n input: CreateContentPieceStartedByAnonymousUserEventInput;\n};\nexport type createContentPieceStartedByAnonymousUserEventMutationResponse = {\n readonly createContentPieceStartedByAnonymousUserEvent: {\n readonly clientMutationId: string | null;\n } | null;\n};\nexport type createContentPieceStartedByAnonymousUserEventMutation = {\n readonly response: createContentPieceStartedByAnonymousUserEventMutationResponse;\n readonly variables: createContentPieceStartedByAnonymousUserEventMutationVariables;\n};\n\n\n\n/*\nmutation createContentPieceStartedByAnonymousUserEventMutation(\n $input: CreateContentPieceStartedByAnonymousUserEventInput!\n) {\n createContentPieceStartedByAnonymousUserEvent(input: $input) {\n clientMutationId\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n ],\n \"concreteType\": \"CreateContentPieceStartedByAnonymousUserEventPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"createContentPieceStartedByAnonymousUserEvent\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"clientMutationId\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"createContentPieceStartedByAnonymousUserEventMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutations\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"createContentPieceStartedByAnonymousUserEventMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"062549ec85c27a25b4c22a9f6043c24c\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"createContentPieceStartedByAnonymousUserEventMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation createContentPieceStartedByAnonymousUserEventMutation(\\n $input: CreateContentPieceStartedByAnonymousUserEventInput!\\n) {\\n createContentPieceStartedByAnonymousUserEvent(input: $input) {\\n clientMutationId\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = '9351bd4943fa1c26ac586622daaa69ed';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nexport type MarkChapterOrContentPieceCompleteInput = {\n completedId: string;\n deviceContext?: string | null | undefined;\n localIsoDateTimeWithOffset?: string | null | undefined;\n clientMutationId?: string | null | undefined;\n};\nexport type markContentPieceCompleteMutationVariables = {\n input: MarkChapterOrContentPieceCompleteInput;\n};\nexport type markContentPieceCompleteMutationResponse = {\n readonly markChapterOrContentPieceComplete: {\n readonly user: {\n readonly authorization: {\n readonly roles: {\n readonly isPreviewingContentAllowance: boolean;\n readonly isPreviewing: boolean;\n };\n };\n };\n readonly completedContentPiece: {\n readonly id: string;\n readonly isCompleted: boolean;\n } | null;\n } | null;\n};\nexport type markContentPieceCompleteMutation = {\n readonly response: markContentPieceCompleteMutationResponse;\n readonly variables: markContentPieceCompleteMutationVariables;\n};\n\n\n\n/*\nmutation markContentPieceCompleteMutation(\n $input: MarkChapterOrContentPieceCompleteInput!\n) {\n markChapterOrContentPieceComplete(input: $input) {\n user {\n authorization {\n roles {\n isPreviewingContentAllowance\n isPreviewing\n }\n }\n id\n }\n completedContentPiece {\n id\n isCompleted\n }\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Authorization\",\n \"kind\": \"LinkedField\",\n \"name\": \"authorization\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"RoleFlags\",\n \"kind\": \"LinkedField\",\n \"name\": \"roles\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPreviewingContentAllowance\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isPreviewing\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv4 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPiece\",\n \"kind\": \"LinkedField\",\n \"name\": \"completedContentPiece\",\n \"plural\": false,\n \"selections\": [\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"isCompleted\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"markContentPieceCompleteMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"MarkChapterOrContentPieceCompletePayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"markChapterOrContentPieceComplete\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"User\",\n \"kind\": \"LinkedField\",\n \"name\": \"user\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/)\n ],\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Mutations\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"markContentPieceCompleteMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"MarkChapterOrContentPieceCompletePayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"markChapterOrContentPieceComplete\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"User\",\n \"kind\": \"LinkedField\",\n \"name\": \"user\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n },\n (v4/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"d5387604f152d48ba1782b9776388ae5\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"markContentPieceCompleteMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation markContentPieceCompleteMutation(\\n $input: MarkChapterOrContentPieceCompleteInput!\\n) {\\n markChapterOrContentPieceComplete(input: $input) {\\n user {\\n authorization {\\n roles {\\n isPreviewingContentAllowance\\n isPreviewing\\n }\\n }\\n id\\n }\\n completedContentPiece {\\n id\\n isCompleted\\n }\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = '1a7db2f1259e79b451a1c969d1cbde64';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nexport type MarkChapterOrContentPieceStartedInput = {\n startedId: string;\n personalizationImpressions?: Array | null | undefined;\n deviceContext?: string | null | undefined;\n localIsoDateTimeWithOffset?: string | null | undefined;\n clientMutationId?: string | null | undefined;\n};\nexport type markContentPieceStartedMutationVariables = {\n input: MarkChapterOrContentPieceStartedInput;\n};\nexport type markContentPieceStartedMutationResponse = {\n readonly markChapterOrContentPieceStarted: {\n readonly startedContentPiece: {\n readonly id: string;\n } | null;\n } | null;\n};\nexport type markContentPieceStartedMutation = {\n readonly response: markContentPieceStartedMutationResponse;\n readonly variables: markContentPieceStartedMutationVariables;\n};\n\n\n\n/*\nmutation markContentPieceStartedMutation(\n $input: MarkChapterOrContentPieceStartedInput!\n) {\n markChapterOrContentPieceStarted(input: $input) {\n startedContentPiece {\n id\n }\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n ],\n \"concreteType\": \"MarkChapterOrContentPieceStartedPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"markChapterOrContentPieceStarted\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"ContentPiece\",\n \"kind\": \"LinkedField\",\n \"name\": \"startedContentPiece\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"markContentPieceStartedMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutations\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"markContentPieceStartedMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"9b7277c70ae093c38268a0ead3023d8f\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"markContentPieceStartedMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation markContentPieceStartedMutation(\\n $input: MarkChapterOrContentPieceStartedInput!\\n) {\\n markChapterOrContentPieceStarted(input: $input) {\\n startedContentPiece {\\n id\\n }\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = 'c34756571eb929065027bc4989ad0667';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type CouponDurationEnum = \"FOREVER\" | \"ONCE\" | \"REPEATING\" | \"%future added value\";\nexport type usePricing_PricingConfig = {\n readonly stripeId: string;\n readonly amount: number;\n readonly currency: string;\n readonly currencySymbol: string;\n readonly trialDays: number | null;\n readonly discount: {\n readonly discountPct: number | null;\n readonly couponDurationInMonths: number | null;\n readonly couponRepetition: CouponDurationEnum | null;\n readonly discountFixed: {\n readonly currencySymbol: string;\n readonly amount: number;\n } | null;\n } | null;\n readonly \" $refType\": \"usePricing_PricingConfig\";\n};\nexport type usePricing_PricingConfig$data = usePricing_PricingConfig;\nexport type usePricing_PricingConfig$key = {\n readonly \" $data\"?: usePricing_PricingConfig$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"usePricing_PricingConfig\">;\n};\n\n\n\nconst node: ReaderFragment = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"amount\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"currencySymbol\",\n \"storageKey\": null\n};\nreturn {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"usePricing_PricingConfig\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"stripeId\",\n \"storageKey\": null\n },\n (v0/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"currency\",\n \"storageKey\": null\n },\n (v1/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"trialDays\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"StripeDiscount\",\n \"kind\": \"LinkedField\",\n \"name\": \"discount\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"discountPct\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"couponDurationInMonths\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"couponRepetition\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Price\",\n \"kind\": \"LinkedField\",\n \"name\": \"discountFixed\",\n \"plural\": false,\n \"selections\": [\n (v1/*: any*/),\n (v0/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"PricingConfig\",\n \"abstractKey\": null\n};\n})();\n(node as any).hash = '24eee107fdc3f1343269557569c44afa';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ReaderFragment } from \"relay-runtime\";\n\nimport { FragmentRefs } from \"relay-runtime\";\nexport type usePricing_viewer = {\n readonly webPricingConfig: {\n readonly name: string;\n readonly yearly: {\n readonly \" $fragmentRefs\": FragmentRefs<\"usePricing_PricingConfig\">;\n };\n readonly monthly: {\n readonly \" $fragmentRefs\": FragmentRefs<\"usePricing_PricingConfig\">;\n };\n };\n readonly \" $refType\": \"usePricing_viewer\";\n};\nexport type usePricing_viewer$data = usePricing_viewer;\nexport type usePricing_viewer$key = {\n readonly \" $data\"?: usePricing_viewer$data | undefined;\n readonly \" $fragmentRefs\": FragmentRefs<\"usePricing_viewer\">;\n};\n\n\n\nconst node: ReaderFragment = (function(){\nvar v0 = [\n {\n \"args\": null,\n \"kind\": \"FragmentSpread\",\n \"name\": \"usePricing_PricingConfig\"\n }\n];\nreturn {\n \"argumentDefinitions\": [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"slug\"\n }\n ],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"usePricing_viewer\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"slug\",\n \"variableName\": \"slug\"\n }\n ],\n \"concreteType\": \"WebPricingConfig\",\n \"kind\": \"LinkedField\",\n \"name\": \"webPricingConfig\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"name\",\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PricingConfig\",\n \"kind\": \"LinkedField\",\n \"name\": \"yearly\",\n \"plural\": false,\n \"selections\": (v0/*: any*/),\n \"storageKey\": null\n },\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"PricingConfig\",\n \"kind\": \"LinkedField\",\n \"name\": \"monthly\",\n \"plural\": false,\n \"selections\": (v0/*: any*/),\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Viewer\",\n \"abstractKey\": null\n};\n})();\n(node as any).hash = 'e9f52c178fb1798476f0c42a77aae8c5';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nexport type WebPurchasePostSCAInput = {\n planId: string;\n customerToken?: string | null | undefined;\n paymentMethodId?: string | null | undefined;\n name: string;\n slug?: string | null | undefined;\n nickname?: string | null | undefined;\n encryptedEmail?: string | null | undefined;\n isNativePurchase?: boolean | null | undefined;\n currency?: string | null | undefined;\n interval?: string | null | undefined;\n clientMutationId?: string | null | undefined;\n};\nexport type webPurchasePostSCAMutationVariables = {\n input: WebPurchasePostSCAInput;\n};\nexport type webPurchasePostSCAMutationResponse = {\n readonly webPurchasePostSca: {\n readonly stripeCustomer: {\n readonly customerId: string;\n readonly paymentPlan: {\n readonly active: boolean;\n };\n } | null;\n } | null;\n};\nexport type webPurchasePostSCAMutation = {\n readonly response: webPurchasePostSCAMutationResponse;\n readonly variables: webPurchasePostSCAMutationVariables;\n};\n\n\n\n/*\nmutation webPurchasePostSCAMutation(\n $input: WebPurchasePostSCAInput!\n) {\n webPurchasePostSca(input: $input) {\n stripeCustomer {\n customerId\n paymentPlan {\n active\n }\n id\n }\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n],\nv2 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"customerId\",\n \"storageKey\": null\n},\nv3 = {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"WebPaymentPlan\",\n \"kind\": \"LinkedField\",\n \"name\": \"paymentPlan\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"active\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"webPurchasePostSCAMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"WebPurchasePostSCAPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"webPurchasePostSca\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"StripeCustomer\",\n \"kind\": \"LinkedField\",\n \"name\": \"stripeCustomer\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Mutations\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"webPurchasePostSCAMutation\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": (v1/*: any*/),\n \"concreteType\": \"WebPurchasePostSCAPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"webPurchasePostSca\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"StripeCustomer\",\n \"kind\": \"LinkedField\",\n \"name\": \"stripeCustomer\",\n \"plural\": false,\n \"selections\": [\n (v2/*: any*/),\n (v3/*: any*/),\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"342c525ef94a258b1295501d10112df0\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"webPurchasePostSCAMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation webPurchasePostSCAMutation(\\n $input: WebPurchasePostSCAInput!\\n) {\\n webPurchasePostSca(input: $input) {\\n stripeCustomer {\\n customerId\\n paymentPlan {\\n active\\n }\\n id\\n }\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = 'ff19e09a8405b17e4148675d9af0bcb3';\nexport default node;\n","import Image from 'next/image'\nimport styled, { css } from 'styled-components'\n\nimport theme, { fonts } from 'theme'\n\ntype AssetLogoSizeProps = 'medium' | 'small'\n\nexport type AssetLogoProps = {\n src: string | null\n ticker: string\n size?: AssetLogoSizeProps\n}\n\nconst ASSET_LOGO_PLACEHOLDER_COLORS = [\n theme.palette.info[500],\n theme.palette.secondary[600],\n theme.palette.info[600],\n theme.palette.neutral[800],\n]\n\n// This matches the logic in the app\nexport const getPlaceholderColor = (symbol: string): string => {\n let asciiTotal = 0\n const limit = symbol.length >= 4 ? 4 : symbol.length\n\n for (let i = 0; i < limit; i++) {\n asciiTotal += symbol.charCodeAt(i)\n }\n\n return ASSET_LOGO_PLACEHOLDER_COLORS[asciiTotal % ASSET_LOGO_PLACEHOLDER_COLORS.length]\n}\n\nconst AssetLogo = ({ src, ticker, size = 'medium' }: AssetLogoProps) => {\n /** \n We return a placeholder logo with the ticker in if:\n - no image is returned from the data\n - we are running locally, as the IEX Sandbox API returns \n jumbled characters for image URLs\n */\n if (!src || !src.startsWith('http')) {\n return (\n \n {ticker}\n \n )\n }\n\n return (\n \n \n \n )\n}\n\nconst LogoContainer = styled.div<{ background?: string; size: AssetLogoSizeProps }>`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ${({ size, theme }) => {\n switch (size) {\n case 'medium':\n return css`\n width: 4rem;\n min-width: 4rem;\n height: 4rem;\n @media (max-width: ${theme.layout.breakpoints.small}) {\n width: 3rem;\n min-width: 3rem;\n height: 3rem;\n font-size: ${fonts.size.XXS};\n }\n `\n case 'small':\n return css`\n width: 2.5rem;\n min-width: 2.5rem;\n height: 2.5rem;\n @media (max-width: ${theme.layout.breakpoints.small}) {\n width: 2rem;\n min-width: 2rem;\n height: 2rem;\n font-size: ${fonts.size.XXS};\n }\n `\n }\n }}\n\n border-radius: 100%;\n background: ${({ background }) => background};\n box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.32);\n color: ${({ theme }) => theme.palette.neutral[0]};\n`\n\nconst StyledImage = styled(Image)`\n object-fit: cover;\n border-radius: 100%;\n`\n\nexport default AssetLogo\n","import { type ReactElement } from 'react'\n\nimport styled from 'styled-components'\n\nimport Card from '../Card'\n\nimport type AssetLogo from './AssetLogo'\n\nimport Heading from 'components/Heading'\nimport Box from 'components/Primitives/Box'\nimport type { AssetClickedTrackingProps } from 'lib/analyticsApi'\nimport { trackAssetClicked } from 'lib/analyticsApi'\nimport { routeMap } from 'shared/routes'\nimport { fonts } from 'theme'\n\ntype Props = {\n name: string | null\n ticker: string\n image: ReactElement\n trackingParams: AssetClickedTrackingProps | null\n}\n\nconst AssetPreviewCard = ({ name, ticker, image: AssetLogo, trackingParams }: Props) => {\n const trackClick = () => trackingParams && trackAssetClicked(trackingParams)\n\n return (\n \n \n {AssetLogo}\n\n \n \n {ticker}\n \n \n {name}\n \n \n \n \n )\n}\n\nconst DetailsContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-content: center;\n justify-content: center;\n\n margin-left: 1rem;\n`\n\nexport default AssetPreviewCard\n","import AssetPreviewCard from './AssetPreviewCard'\nexport default AssetPreviewCard\n","import React, { memo } from 'react'\n\nimport { Fallback, Root, Image } from '@radix-ui/react-avatar'\nimport { graphql, useFragment } from 'react-relay'\nimport styled from 'styled-components'\n\nimport type { Avatar_image$key } from '__generated__/Avatar_image.graphql'\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Box from 'components/Primitives/Box'\n\nexport type AvatarProps = {\n image?: Avatar_image$key\n byline?: string\n size?: BoxProps['width']\n}\n\ntype Props = AvatarProps & BoxProps\n\nconst Avatar = ({ image: imageKey, byline, size, ...props }: Props): React.ReactElement | null => {\n const image = useFragment(AvatarFragment, imageKey || null)\n if (!byline) return null\n\n return (\n \n \n \n {byline?.[0]}\n \n \n )\n}\n\nconst AvatarRoot = styled(Root)<{ size: BoxProps['width'] }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n overflow: hidden;\n user-select: none;\n width: ${({ size }) => size || '45px'}; // TODO: we could enforce a 1:1 aspect ratio here\n height: ${({ size }) => size || '45px'};\n border-radius: 100%;\n background-color: ${({ theme }) => theme.palette.neutral[999]};\n`\n\nconst AvatarImage = styled(Image)`\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: inherit;\n`\n\nconst AvatarFallback = styled(Fallback)`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: white;\n color: ${({ theme }) => theme.palette.neutral[500]};\n font-size: 15px;\n line-height: 1;\n font-weight: ${({ theme }) => theme.fontWeights.medium};\n`\n\nconst AvatarFragment = graphql`\n fragment Avatar_image on URLImage {\n original\n }\n`\n\nexport default memo(Avatar)\n","export const MARKETING_EXPERIMENT_NAME = 'explicit_marketing_web'\n\nexport enum MARKETING_EXPERIMENT_VARIANTS {\n DEFAULT = 'default',\n EXPLICIT_OPT_IN = 'explicit_opt_in',\n}\n","import { MARKETING_EXPERIMENT_NAME, MARKETING_EXPERIMENT_VARIANTS } from './MarketingExperiment'\n\nimport type { useEnrollInExperiment_viewer$key } from '__generated__/useEnrollInExperiment_viewer.graphql'\nimport useEnrollInExperiment from 'components/Experiments/useEnrollInExperiment'\n/*\n\n useMarketingOptIn\n \n This hook determines whether or not we should show the marketing optin checkbox in the signup form currently used in SignUp and PlansSignUp \n which is true if the experiment is enabled\n\n*/\n\nconst useMarketingOptin = (viewer: useEnrollInExperiment_viewer$key) => {\n const [usedVariantName] = useEnrollInExperiment({\n name: MARKETING_EXPERIMENT_NAME,\n viewer,\n defaultVariantName: MARKETING_EXPERIMENT_VARIANTS.DEFAULT,\n variantsAvailableInUI: [\n MARKETING_EXPERIMENT_VARIANTS.DEFAULT,\n MARKETING_EXPERIMENT_VARIANTS.EXPLICIT_OPT_IN,\n ],\n })\n const showMarketingOptInExperiment =\n usedVariantName === MARKETING_EXPERIMENT_VARIANTS.EXPLICIT_OPT_IN\n\n return showMarketingOptInExperiment\n}\n\nexport default useMarketingOptin\n","import React from 'react'\n\nimport { NextSeo } from 'next-seo'\n\nimport Container from 'components/Container'\nimport Heading from 'components/Heading'\nimport { LegacyLink as Link } from 'components/Link'\nimport Paragraph from 'components/Paragraph'\nimport Box from 'components/Primitives/Box'\nimport { routeMap } from 'shared/routes'\n\n/*\n\n Displayed in the case of a 404\n\n*/\n\ntype Props = {\n message: string\n subtitle: string | React.ReactElement\n}\n\nconst NotFound = ({ message, subtitle }: Props) => {\n return (\n \n \n \n \n \n {message}\n \n \n {subtitle}\n \n \n \n \n )\n}\n\nconst notFoundDefaultProps: Partial = {\n message: \"Looks like you're lost 🕵️‍♀️. Try refreshing…\",\n subtitle: (\n \n Or head to our homepage which is easy to find.\n \n ),\n}\n\nNotFound.defaultProps = notFoundDefaultProps\n\nexport default NotFound\n","import NotFound from './NotFound'\n\nimport { LegacyLink as Link } from 'components/Link'\nimport Paragraph from 'components/Paragraph'\nimport { routeMap } from 'shared/routes'\n\nconst errorMessage = {\n message: \"Oops! We can't find this content 🕵️‍♀️.\",\n subtitle: (\n \n Head to our homepage to discover more.\n \n ),\n}\n\nconst ContentNotFound = () => (\n \n)\n\nexport default ContentNotFound\n","import ContentNotFound from './ContentNotFound'\nimport NotFound from './NotFound'\n\nexport { ContentNotFound }\n\nexport default NotFound\n","import { graphql, useFragment } from 'react-relay'\n\nimport type { usePricing_PricingConfig$key } from '__generated__/usePricing_PricingConfig.graphql'\nimport type { usePricing_viewer$key } from '__generated__/usePricing_viewer.graphql'\nimport type { LegacyPricing, Pricing } from 'lib/pricing/types'\nimport { createPriceFromWebPricingConfig } from 'lib/pricing/utils'\n\nexport const usePricing = ({\n viewer,\n}: {\n viewer: usePricing_viewer$key\n}): Pricing | LegacyPricing => {\n const { webPricingConfig } = useFragment(usePricingFragment, viewer)\n\n const yearly = useFragment(\n PricingConfigFragment,\n webPricingConfig?.yearly,\n )\n const monthly = useFragment(\n PricingConfigFragment,\n webPricingConfig?.monthly,\n )\n\n return {\n yearly: createPriceFromWebPricingConfig({\n webPricingConfig: yearly,\n interval: 'year',\n name: webPricingConfig.name,\n }),\n monthly: createPriceFromWebPricingConfig({\n webPricingConfig: monthly,\n interval: 'month',\n name: webPricingConfig.name,\n }),\n }\n}\n\nconst usePricingFragment = graphql`\n fragment usePricing_viewer on Viewer @argumentDefinitions(slug: { type: \"String\" }) {\n webPricingConfig(slug: $slug) {\n name\n yearly {\n ...usePricing_PricingConfig\n }\n monthly {\n ...usePricing_PricingConfig\n }\n }\n }\n`\nconst PricingConfigFragment = graphql`\n fragment usePricing_PricingConfig on PricingConfig {\n stripeId\n amount\n currency\n currencySymbol\n trialDays\n discount {\n discountPct\n couponDurationInMonths\n couponRepetition\n discountFixed {\n currencySymbol\n amount\n }\n }\n }\n`\n","import type { useDefaultPlansPricing_viewer } from '__generated__/useDefaultPlansPricing_viewer.graphql'\nimport type { useLegacyPrice_viewer } from '__generated__/useLegacyPrice_viewer.graphql'\nimport type { usePricing_PricingConfig } from '__generated__/usePricing_PricingConfig.graphql'\nimport createPriceString from 'lib/createPriceString'\nimport type { Price } from 'lib/pricing/types'\nimport type { StripeInterval } from 'types/stripeConsts'\nimport { isAnnual } from 'types/stripeConsts'\n\nexport const createPriceFromWebPaymentPlan = (\n webPaymentPlan:\n | useLegacyPrice_viewer['webPaymentPlan']\n | useDefaultPlansPricing_viewer['monthly']['secondaryWebPlan']\n | useDefaultPlansPricing_viewer['annual'],\n): Price => {\n const { stripeId, amount, currency, currencySymbol, interval, nickname } = webPaymentPlan\n const promotionApplied =\n 'promotionApplied' in webPaymentPlan ? webPaymentPlan.promotionApplied : null\n\n return {\n id: stripeId,\n amount: amount,\n currency: currency,\n currencySymbol: currencySymbol,\n interval: interval as StripeInterval,\n nickname: nickname,\n promotionApplied: {\n discountPct: promotionApplied?.stripeDiscount.discountPct || 0,\n discountAmount: promotionApplied?.stripeDiscount.discountAmount || 0,\n couponDurationInMonths: promotionApplied?.stripeDiscount.couponDurationInMonths || 0,\n couponRepetition: promotionApplied?.stripeDiscount.couponRepetition || 'ONCE',\n },\n trialDays: promotionApplied?.trialDays || 0,\n }\n}\n\nconst calculateCouponDurationInMonths = (\n discount: NonNullable,\n interval: Price['interval'],\n) => {\n const { couponRepetition } = discount\n if (couponRepetition === 'ONCE') {\n // If the coupon is only applied once, we set the duration to the length of the interval\n return interval === 'year' ? 12 : 1\n }\n // Otherwise, we use the duration specified in the discount\n return discount.couponDurationInMonths\n}\n\nexport const createPriceFromWebPricingConfig = ({\n webPricingConfig,\n interval,\n name,\n}: {\n webPricingConfig: NonNullable\n interval: Price['interval']\n name: string\n}): Price => {\n const { stripeId, amount, currency, currencySymbol, trialDays, discount } = webPricingConfig\n\n const promotionApplied = discount\n ? {\n discountPct: discount.discountPct || 0,\n discountAmount: discount.discountFixed?.amount\n ? discount.discountFixed.amount * 100\n : 0,\n couponDurationInMonths: calculateCouponDurationInMonths(discount, interval) || 0,\n couponRepetition: discount.couponRepetition || 'ONCE',\n }\n : null\n\n return {\n id: stripeId,\n amount: amount,\n currency: currency,\n currencySymbol: currencySymbol,\n interval: interval,\n nickname: name,\n promotionApplied: promotionApplied,\n trialDays: trialDays || 0,\n }\n}\n\nexport const getPaywallPrice = (priceObject: Price) => {\n const { interval } = priceObject\n const annualPlan = !!interval && isAnnual(interval.toLowerCase())\n\n const hasDiscount =\n priceObject.promotionApplied?.discountPct || priceObject.promotionApplied?.discountAmount\n\n const calculatedMonthlyPriceDiscounted =\n (hasDiscount &&\n createPriceString({\n // as we're showing this per month\n amount: priceObject.amount,\n currency: priceObject.currency,\n currencySymbol: priceObject.currencySymbol,\n stripeDiscountPct: priceObject.promotionApplied?.discountPct || null,\n stripeDiscountAmount: priceObject.promotionApplied?.discountAmount || null,\n convertToMonth: annualPlan,\n hideCurrencyInfo: true,\n })) ||\n null\n\n const calculatedMonthlyPriceFull = createPriceString({\n // as we're showing this per month\n amount: priceObject.amount,\n currency: priceObject.currency,\n currencySymbol: priceObject.currencySymbol,\n stripeDiscountPct: null,\n stripeDiscountAmount: null,\n convertToMonth: annualPlan,\n hideCurrencyInfo: true,\n })\n\n return { calculatedMonthlyPriceDiscounted, calculatedMonthlyPriceFull }\n}\n\nexport const priceHasTrial = (priceObject: Price) => {\n return priceObject.trialDays > 0\n}\n","import type { NextPageContext } from 'next'\n\nimport { trackNotFoundRedirect } from 'lib/analyticsApi'\nimport { StatusCodeEnum, redirect } from 'lib/redirect'\n/**\n * This function returns a 404 status code and tracks that page hasn't been found.\n *\n * @param context - The Next.js context object.\n * @param urlMap {optional} - Dictionary of urls to redirect to if possible.\n *\n * @returns True if a redirect is performed, false otherwise.\n */\nexport const redirectOrServePageNotFoundStatus = async (\n context: NextPageContext,\n urlMap?: { [key: string]: string },\n): Promise => {\n const { asPath } = context\n if (!context.res) return false\n\n if (!asPath) {\n return false\n }\n\n if (urlMap) {\n const destination = urlMap[asPath]\n\n // If the current path is in our known routes then we can fetch the destination and redirect to it.\n if (!!destination) {\n redirect(context, destination, StatusCodeEnum.PERMANENTLY_MOVED)\n return true\n }\n }\n\n context.res.statusCode = StatusCodeEnum.NOT_FOUND\n trackNotFoundRedirect({ origin: asPath || '' })\n return false\n}\n","import { redirectOrServePageNotFoundStatus } from './redirectOrServePageNotFoundStatus'\n\nexport { redirectOrServePageNotFoundStatus }\n","export default {\"src\":\"/_next/static/media/app-store-logo.2059cfcd.png\",\"height\":87,\"width\":262,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAADCAMAAACZFr56AAAAIVBMVEUXFxckJCQcHBwnJycRERE4ODgdHR1PT09BQUHCwsIoKCjabF59AAAABXRSTlP+1ub+2ncGVSMAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAhSURBVHicBcGBEQAgDAKx17NA2X9gE4QkeGw9Ti5u0sz5BtEAjhjnq/EAAAAASUVORK5CYII=\",\"blurWidth\":8,\"blurHeight\":3};","export default {\"src\":\"/_next/static/media/google-play-badge.02a3231b.png\",\"height\":87,\"width\":294,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAACCAMAAABSSm3fAAAAG1BMVEUaGhovMSwZQU0OUlc3NzgnIBwmJiVFRUUdTzVMj+JsAAAABHRSTlP6+/783e1+bAAAAAlwSFlzAAALEwAACxMBAJqcGAAAABhJREFUeJxjYOZgZWRjAAImRlYWdhYWRgAB5gA0gUK5XgAAAABJRU5ErkJggg==\",\"blurWidth\":8,\"blurHeight\":2};","import React from 'react'\n\nimport Image from 'components/Image'\nimport Box from 'components/Primitives/Box'\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Set from 'components/Set'\nimport { appStoreUrl, playStoreUrl } from 'data'\nimport appStoreLogo from 'public/images/app-store-logo.png'\nimport googlePlayBadge from 'public/images/google-play-badge.png'\n\ntype Props = {\n outerStylingProps?: BoxProps\n buttonSize?: number\n}\n\nconst AppStoreLinks = ({ outerStylingProps, buttonSize = 50 }: Props) => {\n return (\n \n \n \n\n \n \n \n )\n}\n\nexport default AppStoreLinks\n","// the status of the payment attempt\nexport const PAYMENT_STATUSES = {\n SUCCESS: 'succeeded',\n REQUIRES_ACTION: 'requires_action',\n}\n\nexport const ERROR_MESSAGES = {\n TOKEN_FAILED: 'Something went wrong when validating the payment card',\n PAYMENT_FAILED: 'Payment failed. Maybe try a different payment method?',\n MUTATION_FAILED: 'We were unable to process your credit card payment',\n STRIPE_ERROR: 'Something went wrong when validating the payment card',\n}\n","// Use the same decimal formatting as we use for price string\nimport { formatDecimalStr } from './createPriceString'\n\n// TODO: Should refactor price helper/rounded price to share with create price string\nconst getDiscountValue = (\n amount: number,\n stripeDiscountPct: number | null,\n stripeDiscountAmount: number | null,\n): number => {\n if (!amount) {\n return 0\n }\n if (stripeDiscountPct && stripeDiscountAmount) {\n return 0\n }\n if (stripeDiscountAmount) {\n return stripeDiscountAmount\n }\n if (!stripeDiscountPct) {\n return 0\n }\n const price = amount * (1 - stripeDiscountPct / 100)\n const roundedPrice =\n Number.isInteger(price) && price !== 0 ? price : Number(formatDecimalStr(price, 2))\n const discountValue = (amount - roundedPrice).toFixed(2)\n return Number(discountValue)\n}\n\nexport default getDiscountValue\n","import { graphql } from 'react-relay'\nimport type { Environment } from 'relay-runtime'\n\nimport type {\n WebPurchasePostSCAInput,\n webPurchasePostSCAMutationResponse,\n} from '__generated__/webPurchasePostSCAMutation.graphql'\nimport createMutationPromise from 'lib/createMutationPromise'\n\nconst mutation =\n (relayEnv: Environment) =>\n (input: WebPurchasePostSCAInput): Promise => {\n return createMutationPromise(relayEnv)({\n mutation: graphql`\n mutation webPurchasePostSCAMutation($input: WebPurchasePostSCAInput!) {\n webPurchasePostSca(input: $input) {\n stripeCustomer {\n customerId\n paymentPlan {\n active\n }\n }\n }\n }\n `,\n variables: { input },\n })\n }\n\nexport default mutation\n","/*\n\n shared utility functions between the different \"purchase logic\"s\n\n*/\n\nimport type { Stripe } from '@stripe/stripe-js'\nimport type { Environment } from 'relay-runtime'\n\nimport { ERROR_MESSAGES, PAYMENT_STATUSES } from '../consts'\n\nimport type { webPurchasePostSCAMutationResponse } from '__generated__/webPurchasePostSCAMutation.graphql'\nimport type { LegacyButtonProps as ButtonProps } from 'components/Button'\nimport { getFBTrackingParams } from 'lib/analytics/useTrackingParams'\nimport {\n checkoutRedirectKey,\n trackStartTrial as fbTrackStartTrial,\n trackSubscription as fbTrackSubscription,\n getCheckoutDataParams,\n trackStartTrialProxy,\n trackSubscriptionProxy,\n} from 'lib/analyticsApi'\nimport getDiscountValue from 'lib/getDiscountValue'\nimport type { AppsFlyerPBATrackingFn } from 'lib/tracking/appsFlyerPBAClient'\nimport {\n AF_MONTHLY_SUBSCRIPTION,\n AF_TRIAL,\n AF_YEARLY_SUBSCRIPTION,\n} from 'lib/tracking/appsFlyerPBAClient'\nimport {\n FINANCEADS_MONTHLY_SUBSCRIPTION,\n FINANCEADS_TRIAL,\n FINANCEADS_YEARLY_SUBSCRIPTION,\n} from 'lib/tracking/financeAds/consts'\nimport type { FinanceadsTrackingFn } from 'lib/tracking/financeAds/types'\nimport { FREE_TRIAL, MONTHLY_SUBSCRIPTION, YEARLY_SUBSCRIPTION } from 'lib/tracking/impact/consts'\nimport type { ImpactTrackingFn } from 'lib/tracking/impact/types'\nimport webPurchasePostSCAMutation from 'relay/mutations/webPurchasePostSCAMutation'\nimport { routeMap } from 'shared/routes'\nimport type { RelayProps } from 'types/relay'\n\ntype OnSuccessfulPurchaseProps = {\n amount: number\n currency: string\n interval: string\n slug?: string\n customerId: string | null\n discountPct: number | null\n discountAmount: number | null\n trialDays: number | null\n email?: string\n nickname?: string\n defaultRedirectFn: (alternatePath?: string) => void // redirect if another route isn't provided by cookie\n impactTrackingFn: ImpactTrackingFn\n financeadsTrackingFn: FinanceadsTrackingFn\n appsFlyerPBATrackingFn: AppsFlyerPBATrackingFn\n mutationResult: T\n environment: Environment\n userId?: string\n serverFinanceadsId: string | null\n}\n\n// the steps to take on completion of a successful purchase\nexport const onSuccessfulPurchase = async ({\n amount,\n currency,\n interval,\n slug,\n customerId,\n discountPct,\n discountAmount,\n trialDays,\n email,\n nickname,\n defaultRedirectFn,\n impactTrackingFn,\n financeadsTrackingFn,\n appsFlyerPBATrackingFn,\n mutationResult,\n environment,\n userId,\n serverFinanceadsId,\n}: OnSuccessfulPurchaseProps) => {\n const basePurchaseParams = {\n amount,\n currency,\n slug,\n discount: getDiscountValue(amount, discountPct, discountAmount),\n email,\n }\n\n const checkoutParams = getCheckoutDataParams()\n const { fbclid, fbp } = getFBTrackingParams()\n\n const trackingProps = {\n ...checkoutParams,\n ...basePurchaseParams,\n }\n\n const impactParams = {\n userId,\n orderSubTotalPostDiscount: amount - basePurchaseParams.discount,\n orderDiscount: basePurchaseParams.discount,\n currencyCode: currency.toUpperCase(),\n itemSubTotal: amount,\n itemCategory: nickname,\n }\n\n const appsFlyerPBAProps = {\n customerUserId: userId!,\n afRevenue: amount - basePurchaseParams.discount,\n afCurrency: currency.toUpperCase(),\n }\n\n const isYearlySubscription = interval.toLowerCase() === 'year'\n\n // Facebook, Impact and financeAds tracking\n if (trialDays) {\n fbTrackStartTrial(environment, fbclid, fbp, customerId, basePurchaseParams)\n impactTrackingFn(environment, FREE_TRIAL, impactParams)\n financeadsTrackingFn(environment, FINANCEADS_TRIAL, serverFinanceadsId)\n appsFlyerPBATrackingFn(environment, AF_TRIAL, { customerUserId: userId! })\n trackStartTrialProxy(trackingProps)\n } else {\n fbTrackSubscription(environment, fbclid, fbp, customerId, basePurchaseParams)\n impactTrackingFn(\n environment,\n isYearlySubscription ? YEARLY_SUBSCRIPTION : MONTHLY_SUBSCRIPTION,\n impactParams,\n )\n financeadsTrackingFn(\n environment,\n isYearlySubscription ? FINANCEADS_YEARLY_SUBSCRIPTION : FINANCEADS_MONTHLY_SUBSCRIPTION,\n serverFinanceadsId,\n )\n appsFlyerPBATrackingFn(\n environment,\n isYearlySubscription ? AF_YEARLY_SUBSCRIPTION : AF_MONTHLY_SUBSCRIPTION,\n appsFlyerPBAProps,\n )\n trackSubscriptionProxy(trackingProps)\n }\n\n const redirectPath = trackingProps[checkoutRedirectKey]\n\n defaultRedirectFn(redirectPath)\n\n return mutationResult\n}\n\ntype OnRequiresActionProps = {\n clientSecret: string\n stripe: Stripe\n amount: number\n currency: string\n interval: string\n slug?: string\n customerId: string | null\n discountPct: number | null\n discountAmount: number | null\n trialDays: number | null\n defaultRedirectFn: (alternatePath?: string) => void // redirect if another route isn't provided by cookie\n impactTrackingFn: ImpactTrackingFn\n financeadsTrackingFn: FinanceadsTrackingFn\n appsFlyerPBATrackingFn: AppsFlyerPBATrackingFn\n originalMutationResult: T\n name: string\n planId: string\n nickname: string\n relay: RelayProps['relay']\n customerToken?: string // if it's a non-native purchase, we have a token\n paymentMethodId?: string // if it's a native purchase, we have a payment method id\n encryptedEmail?: string // anonymous checkout only\n isNativePurchase?: boolean\n userId?: string\n serverFinanceadsId: string | null\n}\n\nexport const onRequiresAction = async ({\n clientSecret,\n trialDays,\n stripe,\n planId,\n customerToken,\n customerId,\n name,\n nickname,\n encryptedEmail,\n paymentMethodId,\n relay,\n amount,\n currency,\n interval,\n slug,\n discountPct,\n discountAmount,\n defaultRedirectFn,\n impactTrackingFn,\n financeadsTrackingFn,\n appsFlyerPBATrackingFn,\n originalMutationResult,\n isNativePurchase,\n userId,\n serverFinanceadsId,\n}: OnRequiresActionProps) => {\n // trigger showing the user the modal\n let result = null\n let resultStatus = null\n\n // if we're making a purchase, we confirm the card payment\n // covers 0, null, undefined\n if (!trialDays) {\n result = await stripe.confirmCardPayment(clientSecret)\n resultStatus = result.paymentIntent?.status\n // else if we're in a trial, we confirm the card setup (to allow SCA compliant off-session payments)\n } else {\n result = await stripe.confirmCardSetup(clientSecret)\n resultStatus = result.setupIntent?.status\n }\n\n // if there was an error with the SCA, throw a regular error\n if (result.error) {\n // TODO: may need to tweak this message\n throw new Error(ERROR_MESSAGES.PAYMENT_FAILED)\n } else {\n // otherwise if it went through successfully,\n // trigger the post SCA mutation\n // then follow the same proceedure as normal.\n if (resultStatus === PAYMENT_STATUSES.SUCCESS) {\n // Chivas will create a customer, subscription and charge the user\n const postPurchaseProps = {\n planId: planId,\n name,\n slug,\n nickname,\n encryptedEmail,\n isNativePurchase,\n currency,\n interval,\n }\n\n const postSCAMutationResult = customerToken\n ? await webPurchasePostSCAMutation(relay.environment)({\n ...postPurchaseProps,\n customerToken,\n })\n : await webPurchasePostSCAMutation(relay.environment)({\n ...postPurchaseProps,\n // we know we need one or the other\n paymentMethodId: paymentMethodId as string,\n })\n\n // trigger successful purchase actions\n return onSuccessfulPurchase({\n amount,\n currency,\n interval,\n slug,\n customerId,\n nickname,\n discountPct,\n discountAmount,\n trialDays,\n defaultRedirectFn,\n impactTrackingFn,\n financeadsTrackingFn,\n appsFlyerPBATrackingFn,\n mutationResult: postSCAMutationResult,\n environment: relay.environment,\n userId,\n serverFinanceadsId,\n })\n }\n }\n\n return originalMutationResult\n}\n\n// function to get paywall URL props used to pass to checkout paywall\nexport type PaywallButtonProps = Pick\n\nexport const getPaywallButtonProps = (\n cta: string,\n asPath: string,\n encryptedEmail?: string,\n): PaywallButtonProps => {\n // If we have encrypted email, go to checkout.\n // Note setting ref page here redirects back to this screen once the checkout is complete\n const redirectUrl = `${routeMap.checkout()}?ref-page=${encodeURIComponent(asPath)}`\n\n return {\n url: {\n pathname: routeMap.checkout(),\n query: {\n 'redirect-uri': redirectUrl,\n 'email-id': encryptedEmail,\n 'cta-source': encodeURIComponent(cta),\n },\n },\n }\n}\n","import styled from 'styled-components'\n\nimport { TOP_NAV_HEIGHT } from 'modules/Navigation/consts'\nimport { SUB_NAV_BAR_HEIGHT } from 'modules/Navigation/NavBarTop/SubNavBar'\n\nexport const StickySideBar = styled.div`\n height: fit-content;\n position: sticky;\n top: ${TOP_NAV_HEIGHT + SUB_NAV_BAR_HEIGHT + 15}px;\n`\n","/**\n * This function builds the deviceContext variable which we\n * pass to content start/complete graphQL mutations.\n */\n\ntype WebDeviceContext = {\n version: number\n platform: 'web'\n web: {\n userAgent: string\n }\n}\n\nexport const getDeviceContext = (userAgent: string): WebDeviceContext => {\n return {\n version: 1,\n platform: 'web',\n web: {\n userAgent,\n },\n }\n}\n","import { formatISO } from 'date-fns'\n\n/**\n *\n builds ISO 8601 date and time with (local) offset string\n\n Note: This will return undefined if not running in the client\n context.\n\n*/\n\nexport const getLocalIsoDateTimeWithOffset = (): string | undefined => {\n if (!isClient()) return\n\n const now = new Date()\n return formatISO(now)\n}\n\nconst isClient = (): boolean => typeof window !== 'undefined'\n","export const CONTENT_TYPE_DAILY_BRIEF = 'Daily Brief'\nexport const CONTENT_TYPE_WEEKLY_BRIEF = 'Weekly Brief'\nexport const CONTENT_TYPE_NEWS_STORY = 'News Story'\nexport const CONTENT_TYPE_EXPANDED_NEWS = 'News (Expanded)'\nexport const CONTENT_TYPE_EXPANDED_NEWS_MT = 'News (Expanded MTNewswires)'\nexport const CONTENT_TYPE_INSIGHT = 'Insight'\nexport const CONTENT_TYPE_PACK = 'Pack'\nexport const CONTENT_TYPE_PODCAST = 'Podcast'\nexport const CONTENT_TYPE_QUICK_TAKE = 'Quick Take'\nexport const CONTENT_TYPE_GUIDE = 'Guide'\nexport const CONTENT_TYPE_OTHER = 'Other'\n\nexport type CONTENT_TYPES =\n | typeof CONTENT_TYPE_DAILY_BRIEF\n | typeof CONTENT_TYPE_WEEKLY_BRIEF\n | typeof CONTENT_TYPE_NEWS_STORY\n | typeof CONTENT_TYPE_EXPANDED_NEWS\n | typeof CONTENT_TYPE_EXPANDED_NEWS_MT\n | typeof CONTENT_TYPE_INSIGHT\n | typeof CONTENT_TYPE_PACK\n | typeof CONTENT_TYPE_PODCAST\n | typeof CONTENT_TYPE_QUICK_TAKE\n | typeof CONTENT_TYPE_GUIDE\n | typeof CONTENT_TYPE_OTHER\n","import Paragraph from 'components/Paragraph'\nimport Box from 'components/Primitives/Box'\nimport {\n CONTENT_TYPE_EXPANDED_NEWS,\n CONTENT_TYPE_EXPANDED_NEWS_MT,\n type CONTENT_TYPES,\n} from 'types/contentPiece'\n\nconst AI_DISCLAIMER =\n 'This article may contain AI-edited content. While efforts have been made to ensure accuracy, AI may not capture the nuances of the subject matter resulting in errors or inconsistencies.'\n\nconst BASE_DISCLAIMER =\n 'These articles are provided for information purposes only. Occasionally, an opinion about whether to buy or sell a specific investment may be provided. The content is not intended to be a personal recommendation to buy or sell any financial instrument or product, or to adopt any investment strategy as it is not provided based on an assessment of your investing knowledge and experience, your financial situation or your investment objectives. The value of your investments, and the income derived from them, may go down as well as up. You may not get back all the money that you invest. The investments referred to in this article may not be suitable for all investors, and if in doubt, an investor should seek advice from a qualified investment advisor.'\n\nconst MT_NEWSWIRES_NOTICE = 'This article is based on reporting by MT Newswires.'\n\nconst ContentDisclaimer = ({ contentPieceType }: { contentPieceType: CONTENT_TYPES }) => {\n const shouldIncludeAiDisclaimer =\n contentPieceType === CONTENT_TYPE_EXPANDED_NEWS ||\n contentPieceType === CONTENT_TYPE_EXPANDED_NEWS_MT\n const isMTNewsWires = contentPieceType === CONTENT_TYPE_EXPANDED_NEWS_MT\n const aiDisclaimer = isMTNewsWires ? `${MT_NEWSWIRES_NOTICE} ${AI_DISCLAIMER}` : AI_DISCLAIMER\n\n return (\n \n \n Disclaimer: {BASE_DISCLAIMER}{' '}\n {shouldIncludeAiDisclaimer && aiDisclaimer}\n \n \n )\n}\n\nexport default ContentDisclaimer\n","import ContentDisclaimer from './ContentDisclaimer'\n\nexport default ContentDisclaimer\n","import { useEffect, useState } from 'react'\n\nimport { useRouter } from 'next/router'\nimport styled from 'styled-components'\n\nimport type { useEnrollInExperiment_viewer$key } from '__generated__/useEnrollInExperiment_viewer.graphql'\nimport Button from 'components/Button'\nimport Hide from 'components/Hide'\nimport Icon from 'components/Icon'\nimport Paragraph from 'components/Paragraph'\nimport Box from 'components/Primitives/Box'\nimport FullWidthBackground from 'containers/FullWidthBackground'\nimport {\n trackClickFreeAllowanceBanner,\n trackToggleFreeAllowanceBanner,\n trackViewFreeAllowanceBanner,\n} from 'lib/analyticsApi'\nimport { useFreeArticleCookiesContext } from 'lib/freeArticleAllowance/useFreeArticleCookies'\nimport { getJoinPageUrlPath } from 'lib/getJoinPageUrlPath'\nimport type { PaywallButtonProps } from 'modules/Checkout/utils'\nimport { fonts, trispace } from 'theme/index'\n\nconst CTA_TEXT = 'Subscribe now for unlimited access.'\nconst CTA_SUBTEXT =\n 'Finimize is a financial information platform that empowers over 1m modern investors with bite-size insights by world-class analysts.'\nconst CTA_SOURCE = 'content free article prompt'\n/*\n\n Displays a count of how many articles you have remaining\n in your quarterly free content allowance. For now this logic is\n determined using cookies.\n\n*/\n\ninterface Props {\n hasContentAccess: boolean\n generatePaywallButtonProps: (cta: string) => PaywallButtonProps\n isFreeContent: boolean\n viewer: useEnrollInExperiment_viewer$key\n}\n\nconst FreeArticleCountBanner = ({ hasContentAccess, isFreeContent }: Props) => {\n const { totalArticleCountThisAllowanceWindow, remainingFreeArticles } =\n useFreeArticleCookiesContext()\n\n const [isCollapsed, setisCollapsed] = useState(true)\n\n const toggleExpanded = () => {\n setisCollapsed(!isCollapsed)\n trackToggleFreeAllowanceBanner({\n number: totalArticleCountThisAllowanceWindow ?? 0,\n expanded: !isCollapsed,\n })\n }\n\n const hideBanner =\n remainingFreeArticles === null ||\n (!hasContentAccess && remainingFreeArticles === 0) ||\n isFreeContent\n\n useEffect(() => {\n // Want this to run client side so we track the correct number\n totalArticleCountThisAllowanceWindow &&\n !hideBanner &&\n trackViewFreeAllowanceBanner({ number: totalArticleCountThisAllowanceWindow })\n })\n\n const { asPath } = useRouter()\n const freeTrialUrl = getJoinPageUrlPath(asPath, CTA_SOURCE)\n\n // We show a paywall instead if we're out of free articles\n // have the content check (from the server) here has well because otherwise\n // the banner disappears as soon as the final cookie is set\n if (hideBanner) return null\n\n const handleClick = () => {\n totalArticleCountThisAllowanceWindow &&\n trackClickFreeAllowanceBanner({\n number: totalArticleCountThisAllowanceWindow,\n expanded: !isCollapsed,\n })\n }\n\n const CTAButton = (\n \n Start Free Trial\n \n )\n\n const expandableFontSize = isCollapsed ? fonts.size.M : fonts.size.L\n\n return (\n \n \n \n \n \n \n {CTA_TEXT}\n \n \n {`You have ${remainingFreeArticles} free ${\n remainingFreeArticles === 1 ? 'article' : 'articles'\n } left.`}\n \n \n \n\n \n {!isCollapsed && (\n \n {CTAButton}\n \n )}\n \n \n \n \n \n {!isCollapsed && (\n \n \n {CTA_SUBTEXT}\n \n \n {CTAButton}\n \n \n )}\n \n \n )\n}\n\nconst StyledButton = styled(Button)`\n max-width: 21rem;\n height: 2rem;\n @media (min-width: 1200px) {\n min-width: 20rem;\n }\n`\n\nconst ArrowIcon = styled(Icon)<{ $isCollapsed: boolean }>`\n transform: ${({ $isCollapsed }) => ($isCollapsed ? 'rotate(180deg)' : 'rotate(0deg)')};\n transition: transform 0.3s;\n`\n\nconst ArrowButton = styled.button`\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n justify-content: center;\n padding-bottom: 1rem;\n\n &:focus {\n outline: none;\n }\n`\n\nexport default FreeArticleCountBanner\n","import { useRef } from 'react'\n\nimport styled from 'styled-components'\n\nimport { useAdvertisingTracking } from 'components/Advertising/Hooks/useAdvertisingTracking'\nimport Button from 'components/Button'\nimport MarkdownParser from 'components/Markdown/MarkdownParser'\nimport Box from 'components/Primitives/Box'\nimport type { DefaultStyledProps } from 'components/styled'\nimport { ImageRatios } from 'consts/index'\n\nexport type ContentItem =\n | {\n type: 'text'\n text: string\n }\n | {\n type: 'image'\n image: React.ReactNode\n }\n\ntype InlineAdvertUIProps = {\n id: string\n title: string\n trackingTitle: string\n image: React.ReactNode | null\n button: { text: string; link: string } | null\n content: ContentItem[]\n disclaimer: ContentItem[]\n}\n\nconst InlineAdvertUI = ({\n id,\n title,\n trackingTitle,\n image,\n button,\n content,\n disclaimer,\n}: InlineAdvertUIProps) => {\n const ref = useRef(null)\n\n const { onClick } = useAdvertisingTracking(ref, {\n advertHandle: trackingTitle,\n advertId: id,\n companyName: title,\n type: 'inline',\n })\n\n return (\n \n \n \n ADVERTISEMENT\n \n \n \n {title}\n {image && {image}}\n\n {content.map((item, index) => (\n
\n {item.type === 'text' ? (\n {item.text}\n ) : (\n {item.image}\n )}\n
\n ))}\n\n {button && (\n \n \n \n )}\n\n {disclaimer.map((item, index) => (\n
\n {item.type === 'text' ? (\n \n \n {item.text}\n \n \n ) : (\n {item.image}\n )}\n
\n ))}\n
\n \n
\n )\n}\n\nexport default InlineAdvertUI\n\nconst Container = styled.div`\n position: relative;\n margin: 0 1rem;\n background-color: ${({ theme }) => theme.palette.neutral[50]};\n`\n\nconst AdvertLabel = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${({ theme }) => theme.palette.neutral[600]};\n font-size: ${({ theme }) => theme.fontSize.XXS};\n letter-spacing: 0.0625rem;\n text-transform: uppercase;\n width: 100%;\n position: absolute;\n top: -0.5rem;\n left: 0;\n`\n\nconst AdvertLabelLine = styled.div`\n height: 0.11rem;\n background-color: ${({ theme }) => theme.palette.neutral[400]};\n flex-grow: 1;\n`\n\nconst Title = styled.div`\n font-size: ${({ theme }) => theme.fontSize.XS};\n color: ${({ theme }) => theme.palette.neutral[999]};\n font-weight: ${({ theme }) => theme.fontWeights.bold};\n justify-content: center;\n display: flex;\n`\n\nconst AdvertContainer = styled.div`\n padding: 1rem;\n border-radius: 0.5rem;\n`\n\nconst ImageContainer = styled.div`\n position: relative;\n width: 100%;\n aspect-ratio: ${ImageRatios.GOLDEN_RATIO};\n overflow: hidden;\n border-radius: ${({ theme }) => theme.radii.default};\n margin: 1rem 0;\n`\n\nconst Disclaimer = styled.div`\n margin: 1rem 0;\n font-style: italic;\n`\n","import { graphql, useFragment } from 'react-relay'\n\nimport type { ImageProps } from '../Image'\n\nimport type { AccessibleImageWithLink_accessibleImage$key } from '__generated__/AccessibleImageWithLink_accessibleImage.graphql'\nimport Image from 'components/Image'\nimport { LinkWrapper } from 'components/Link/LinkWrapper'\nimport type { Omit } from 'types'\n\ntype WrappedImageProps = Omit\n\nexport type AccessibleImageWithLinkProps = {\n accessibleImage: AccessibleImageWithLink_accessibleImage$key\n} & Omit\n\n/**\n\n This is a wrapper around the ServerImage component that\n enforces an alt tag.\n\n We are now deprecating ServerImage in favor of this accessible\n image component.\n\n*/\n\nconst AccessibleImageWithLink = ({\n accessibleImage: accessibleImageKey,\n ...props\n}: AccessibleImageWithLinkProps) => {\n const image = useFragment(AccessibleImageWithLinkFragment, accessibleImageKey)\n\n if (!image) return null\n return (\n \n {image.altText}\n \n )\n}\n\nconst AccessibleImageWithLinkFragment = graphql`\n fragment AccessibleImageWithLink_accessibleImage on AccessibleURLImageWithLink {\n full\n altText\n link\n }\n`\n\nexport default AccessibleImageWithLink\n","import { graphql, useFragment } from 'react-relay'\n\nimport type { ContentItem } from './InlineAdvertUI'\nimport InlineAdvertUI from './InlineAdvertUI'\n\nimport type {\n InlineAdvert_viewer,\n InlineAdvert_viewer$key,\n} from '__generated__/InlineAdvert_viewer.graphql'\nimport AccessibleImageWithLink from 'components/Image/Relay/AccessibleImageWithLink'\nimport ImageBlock from 'modules/ContentDisplay/Block/BlockTypes/ImageBlock'\n\ntype BlockType = NonNullable<\n NonNullable['newsletterLatestRandom']\n>['content']\n\ntype Props = {\n viewer: InlineAdvert_viewer$key\n}\n\nconst InlineAdvert = ({ viewer: viewerKey }: Props) => {\n const viewer = useFragment(InlineAdvertFragment, viewerKey)\n const advert = viewer.adverts.newsletterLatestRandom\n\n if (!advert) return null\n\n const image = advert.image && (\n \n )\n\n const mapBlocks = (blocks: BlockType): ContentItem[] => {\n return (\n blocks\n ?.map(block => {\n if (block.__typename === 'TextBlock' && block.textMarkdown) {\n return {\n type: 'text',\n text: block.textMarkdown,\n } as ContentItem\n }\n if (block.__typename === 'ImageBlock') {\n return {\n type: 'image',\n image: ,\n } as ContentItem\n }\n return null\n })\n .filter((item): item is ContentItem => item !== null) ?? []\n )\n }\n\n const content = mapBlocks(advert.content)\n const disclaimer = mapBlocks(advert.disclaimer)\n\n return (\n \n )\n}\n\nexport default InlineAdvert\n\nconst InlineAdvertFragment = graphql`\n fragment InlineAdvert_viewer on Viewer {\n adverts {\n newsletterLatestRandom {\n id\n title\n trackingTitle\n image {\n ...AccessibleImageWithLink_accessibleImage\n }\n button {\n text\n link\n }\n content {\n __typename\n ... on TextBlock {\n textMarkdown\n }\n ... on ImageBlock {\n ...ImageBlock_block\n }\n }\n disclaimer {\n __typename\n ... on TextBlock {\n textMarkdown\n }\n ... on ImageBlock {\n ...ImageBlock_block\n }\n }\n }\n }\n }\n`\n","import InlineAdvert from './InlineAdvert'\n\nexport default InlineAdvert\n","import React from 'react'\n\nimport styled from 'styled-components'\n\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Box from 'components/Primitives/Box'\nimport { zIndex } from 'theme'\n\ninterface LocalOverlayProps {\n fadeTo?: 'top' | 'bottom' | 'left' | 'right'\n color1?: string\n color2?: string\n}\n\nexport type OpacityOverlayProps = BoxProps & LocalOverlayProps\n\nconst OpacityOverlay = (props: OpacityOverlayProps) => <_OpacityOverlay {...props} />\n\nexport default OpacityOverlay\n\nexport const OpacityOverlayDefaultProps: Partial = {\n fadeTo: 'top',\n color1: 'rgba(255, 255, 255, 1) 20%',\n color2: 'rgba(255, 255, 255, 0) 80%',\n}\nOpacityOverlay.defaultProps = OpacityOverlayDefaultProps\n\n/*\n\n Applies a fade overlay at full-width/height across a parent div.\n Colors and direction are customisable\n\n Note: Requires a relative positioned element above to \n position against\n\n*/\n\nconst _OpacityOverlay = styled(Box)`\n position: absolute;\n bottom: 0;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: ${zIndex.layer03};\n content: '';\n background: linear-gradient(\n to ${props => props.fadeTo},\n ${props => props.color1},\n ${props => props.color2}\n );\n pointer-events: none;\n`\n","import type { Ref} from 'react';\nimport { useEffect, useState, useRef, useCallback } from 'react'\n\n/*\n\n Used to fire a given callback function when a user scrolls \n beyond a threshold amount. This is threshold is currently set \n globally below, but we could make this configurable if the need arises\n\n*/\n\ntype Props = {\n trackingEnabled?: boolean // only track if this is true\n onScrollPastThreshold: () => void\n /** Content piece ID used to reset scroll tracking*/\n globalID: string\n}\n\n// returns a ref that can be added to a particular element\n// to measure its height\ntype ReturnValue = [Ref]\n\nconst SCROLL_TRACKING_THRESHOLD = 0.75\n\nconst useContentScrollTracking = ({\n onScrollPastThreshold,\n trackingEnabled,\n globalID,\n}: Props): ReturnValue => {\n const [hasTracked, setHasTracked] = useState(false)\n const ref = useRef(null)\n\n useEffect(() => {\n // set hasTracked to false, to reset scroll tracking when the content piece changes\n setHasTracked(false)\n }, [globalID])\n\n const onScroll = useCallback(\n () => {\n if (hasTracked || !ref.current) return\n\n // we want bottom of viewport to be 75% down the page\n\n const verticalScroll = window.scrollY //measured to top of viewport\n const browserViewportHeight = window.innerHeight\n const pageHeight = ref.current.clientHeight\n\n const distanceBottomOfViewportScrolled = verticalScroll + browserViewportHeight\n const scrollDistanceThreshold = SCROLL_TRACKING_THRESHOLD * pageHeight\n\n if (distanceBottomOfViewportScrolled > scrollDistanceThreshold) {\n setHasTracked(true)\n onScrollPastThreshold()\n }\n },\n // Need to be careful to track all dependencies here or we\n // might get duplicate functions firing\n [onScrollPastThreshold, hasTracked, ref],\n )\n\n useEffect(() => {\n if (!trackingEnabled || !ref.current) return\n\n window.addEventListener('scroll', onScroll, { passive: true })\n\n return () => window.removeEventListener('scroll', onScroll)\n }, [trackingEnabled, ref, onScroll])\n\n return [ref]\n}\n\nexport default useContentScrollTracking\n","import type { IconProps } from 'components/Icon'\n\n/**\n * Social share events\n */\n\nexport enum SocialShareContentVariants {\n FACEBOOK = 'Facebook',\n TWITTER = 'Twitter',\n LINKEDIN = 'LinkedIn',\n}\n\ntype SocialShare = {\n [key in SocialShareContentVariants]: { icon: IconProps['icon']; label: string }\n}\n\nexport const socialShares: SocialShare = {\n Facebook: {\n icon: 'RiFacebookFill',\n label: 'Share on Facebook',\n },\n LinkedIn: {\n icon: 'RiLinkedinFill',\n label: 'Share on LinkedIn',\n },\n Twitter: {\n icon: 'RiTwitterXFill',\n label: 'Share on X',\n },\n}\n","import { useState } from 'react'\n\nimport { SocialShareContentVariants } from './consts'\n\nimport { trackContentPieceLinkCopied, trackSocialShareContent } from 'lib/analyticsApi'\nimport { useContentUrl } from 'modules/ContentDisplay/utils'\n\nexport const getSocialShareLink = ({\n network,\n contentPieceTitle,\n deepLink,\n}: {\n network: SocialShareContentVariants\n contentPieceTitle: string\n deepLink: string\n}) => {\n const encodedUrl = encodeURIComponent(deepLink)\n const encodedTitle = encodeURIComponent(contentPieceTitle)\n\n switch (network) {\n case SocialShareContentVariants.TWITTER:\n return `https://twitter.com/intent/tweet?url=${encodedUrl}&text=${encodedTitle}`\n case SocialShareContentVariants.FACEBOOK:\n return `https://www.facebook.com/sharer/sharer.php?u=${encodedUrl}`\n case SocialShareContentVariants.LINKEDIN:\n return `https://www.linkedin.com/sharing/share-offsite/?url=${encodedUrl}`\n }\n}\n\nexport const trackSocialClick = (\n network: SocialShareContentVariants,\n contentPieceId: string,\n contentPieceTitle: string,\n location: 'top' | 'bottom',\n) => {\n trackSocialShareContent({ network, contentPieceId, contentPieceTitle, location })\n}\n\nexport const useCopyToClipboard = ({\n canonicalLink,\n contentPieceId,\n contentPieceTitle,\n slug,\n}: {\n canonicalLink: string\n contentPieceId: string\n contentPieceTitle: string\n slug: string\n}) => {\n const [copied, setCopied] = useState(false)\n const clipboardURLPath = useContentUrl({\n id: contentPieceId,\n slug,\n\n canonicalLink,\n })\n\n const canonicalLinkUrlObject = new URL(canonicalLink)\n const clipboardURL = `${canonicalLinkUrlObject.protocol}//${canonicalLinkUrlObject.host}${clipboardURLPath}`\n\n const copyToClipboard = () => {\n if (navigator && clipboardURL) {\n navigator.clipboard.writeText(clipboardURL)\n trackContentPieceLinkCopied({ contentPieceId, contentPieceTitle })\n setCopied(true)\n }\n }\n\n return { copyToClipboard, copied }\n}\n","import styled from 'styled-components'\n\nimport type { SocialShareContentVariants } from './consts'\nimport { socialShares } from './consts'\nimport { getSocialShareLink, trackSocialClick } from './utils'\n\nimport type { IconProps } from 'components/Icon'\nimport Icon from 'components/Icon'\nimport Link from 'components/Link'\nimport type { ThemedComponent } from 'theme/Types'\n\ntype ShareLinkProps = {\n contentPieceId: string\n contentPieceTitle: string\n network: SocialShareContentVariants\n deepLink: string\n}\n\nconst ShareContentIcon = ({\n contentPieceId,\n contentPieceTitle,\n network,\n deepLink,\n}: ShareLinkProps) => {\n const onClick = () => trackSocialClick(network, contentPieceId, contentPieceTitle, 'bottom')\n\n return (\n \n \n \n )\n}\n\ntype StyledProps = ThemedComponent\n\nconst ShareIconButton = styled(Icon)`\n &:hover {\n color: ${({ theme }) => theme.palette.neutral[999]};\n text-decoration: none !important;\n transition: 0.3s;\n cursor: pointer;\n }\n`\n\nexport default ShareContentIcon\n","import styled from 'styled-components'\n\nimport { SocialShareContentVariants } from './consts'\nimport ShareContentIcon from './ShareContentIcon'\nimport { useCopyToClipboard } from './utils'\n\nimport type { IconProps } from 'components/Icon'\nimport Icon from 'components/Icon'\nimport Popover from 'components/Popover'\nimport Set from 'components/Set'\nimport type { ThemedComponent } from 'theme/Types'\n\nexport type ShareContentIconsProps = {\n deepLink: string\n contentPieceId: string\n contentPieceTitle: string\n canonicalLink: string\n slug: string\n}\n\ntype StyledProps = ThemedComponent\n\nconst ShareContent = ({\n contentPieceId,\n deepLink,\n contentPieceTitle,\n canonicalLink,\n slug,\n}: ShareContentIconsProps) => {\n const { copyToClipboard } = useCopyToClipboard({\n canonicalLink,\n contentPieceId,\n contentPieceTitle,\n slug,\n })\n\n return (\n \n {Object.values(SocialShareContentVariants).map(network => (\n \n ))}\n \n \n \n \n )\n}\n\nconst ShareIconButton = styled(Icon)`\n &:hover {\n color: ${({ theme }: StyledProps) => theme.palette.neutral[999]};\n text-decoration: none !important;\n transition: 0.3s;\n cursor: pointer;\n }\n`\n\nexport default ShareContent\n","import type { ShareContentIconsProps } from './ShareContentIcons'\nimport ShareContentIcons from './ShareContentIcons'\n\nexport { type ShareContentIconsProps }\n\nexport default ShareContentIcons\n","import { graphql, useFragment } from 'react-relay'\nimport styled from 'styled-components'\n\nimport type { ContentFooter_contentPiece$key } from '__generated__/ContentFooter_contentPiece.graphql'\nimport Box from 'components/Primitives/Box'\nimport Set from 'components/Set'\nimport Tag from 'components/Tag/Relay/Tag'\nimport { TagPlacementEnum } from 'lib/analyticsApi'\nimport ShareContent from 'modules/ShareContent'\nimport { fonts } from 'theme'\n\ntype ContentFooterProps = {\n contentPiece: ContentFooter_contentPiece$key\n}\n\nconst ContentFooter = ({ contentPiece: contentPieceKey }: ContentFooterProps) => {\n const contentPiece = useFragment(ContentFooterContentPieceFragment, contentPieceKey)\n\n const { id, deepLink, title, canonicalLink, slug, mostRelevantTags: tags } = contentPiece\n\n return (\n \n \n\n {tags && (\n \n {tags.edges.map((tag, index: number) => (\n \n ))}\n \n )}\n \n )\n}\n\nconst ContentFooterContentPieceFragment = graphql`\n fragment ContentFooter_contentPiece on ContentPieceInterface {\n id\n title\n deepLink\n canonicalLink\n slug\n mostRelevantTags(first: 30) {\n edges {\n node {\n ...Tag_tag\n }\n }\n }\n }\n`\n\nconst Tags = styled(Box)`\n display: flex;\n justify-self: flex-end;\n flex-wrap: wrap;\n gap: 0.75rem;\n`\n\nexport default ContentFooter\n","import Link from 'next/link'\nimport { graphql, useFragment } from 'react-relay'\nimport styled from 'styled-components'\n\nimport type { AuthorLinkWrapper_author$key } from '__generated__/AuthorLinkWrapper_author.graphql'\nimport { routeMap } from 'shared/routes'\n\ntype Props = {\n author: AuthorLinkWrapper_author$key\n children: React.ReactElement\n}\n\n/**\n *\n * @returns A wrapper around a component which should link to the Expert page.\n * Adds on link styling, such as underlined text on hover.\n */\nconst AuthorLinkWrapper = ({ author: authorKey, children }: Props) => {\n const author = useFragment(AuthorLinkWrapperFragment, authorKey)\n\n const inActiveAuthor = !author.isActive\n\n if (inActiveAuthor) {\n return <>{children}\n }\n\n return (\n \n {children}\n \n )\n}\n\nconst LinkStyling = styled.div`\n cursor: pointer;\n :hover {\n text-decoration: underline;\n }\n`\n\nconst AuthorLinkWrapperFragment = graphql`\n fragment AuthorLinkWrapper_author on Author {\n slug\n isActive\n }\n`\n\nexport default AuthorLinkWrapper\n","import pluralize from 'pluralize'\n\ntype ReadingTimeUnit = 'min' | 'second' | 'hour'\n\nexport const formatReadingTime = (\n readingTimeSeconds: number,\n defaultValue = '2 mins',\n unit: ReadingTimeUnit = 'min',\n): string => {\n if (isNaN(readingTimeSeconds)) {\n return defaultValue\n }\n\n if (readingTimeSeconds === 0) {\n return `0 ${unit}`\n }\n\n const roundedSeconds = Math.round(readingTimeSeconds)\n const secondsPart = roundedSeconds % 60.0\n const minPart =\n secondsPart < 30 ? Math.floor(roundedSeconds / 60.0) : Math.floor(roundedSeconds / 60.0) + 1\n\n const formattedUnit = pluralize(unit, minPart)\n\n if (minPart < 1) {\n return `1 ${unit}`\n } else {\n return `${minPart} ${formattedUnit}`\n }\n}\n","import React from 'react'\n\nimport { graphql, useFragment } from 'react-relay'\n\nimport type { ContentMetadata_contentPiece$key } from '__generated__/ContentMetadata_contentPiece.graphql'\nimport AuthorLinkWrapper from 'components/Author/AuthorLinkWrapper'\nimport Paragraph from 'components/Paragraph'\nimport Box from 'components/Primitives/Box'\nimport { formatReadingTime } from 'lib/formatTimeStrings'\nimport timeAgo from 'lib/timeAgo'\n\ntype Props = {\n contentPiece: ContentMetadata_contentPiece$key\n}\n\nconst ContentMetadata = ({ contentPiece: contentPieceKey }: Props) => {\n const contentPiece = useFragment(ContentMetadataFragment, contentPieceKey)\n const {\n consumptionTime,\n contentPieceType: { isEvergreen },\n dateUpdatedDisplay,\n author,\n } = contentPiece\n const showDateUpdated = !isEvergreen && !!dateUpdatedDisplay\n const showConsumptionTime = !!consumptionTime\n\n return (\n \n {author && (\n \n {author.byline}\n \n )}\n\n \n {showDateUpdated && `${timeAgo(dateUpdatedDisplay as string)} ago`}\n {showDateUpdated && showConsumptionTime && ` • `}\n {showConsumptionTime && formatReadingTime(consumptionTime)}\n \n \n )\n}\n\nconst ContentMetadataFragment = graphql`\n fragment ContentMetadata_contentPiece on ContentPieceInterface {\n consumptionTime\n dateUpdatedDisplay\n contentPieceType {\n isEvergreen\n }\n\n author {\n byline\n ...AuthorLinkWrapper_author\n }\n }\n`\n\nexport default ContentMetadata\n","import ContentMetadata from './ContentMetadata'\n\nexport default ContentMetadata\n","import { graphql, useFragment } from 'react-relay'\n\nimport type { ContentAuthorAndMetadata_author$key } from '__generated__/ContentAuthorAndMetadata_author.graphql'\nimport type { DefaultContentHeader_contentPiece } from '__generated__/DefaultContentHeader_contentPiece.graphql'\nimport AuthorLinkWrapper from 'components/Author/AuthorLinkWrapper'\nimport Avatar from 'components/Avatar/Avatar'\nimport Set from 'components/Set'\nimport ContentMetadata from 'modules/ContentMetadata'\n\nconst ContentAuthorAndMetadata = ({\n contentPiece,\n author: authorKey,\n}: {\n contentPiece: DefaultContentHeader_contentPiece\n author: ContentAuthorAndMetadata_author$key | null\n}) => {\n const author = useFragment(ContentAuthorAndMetadataFragment_author, authorKey)\n\n return (\n \n {!!author && (\n \n \n \n )}\n \n \n )\n}\n\nconst ContentAuthorAndMetadataFragment_author = graphql`\n fragment ContentAuthorAndMetadata_author on Author {\n id\n byline\n profilePicture {\n ...Avatar_image\n }\n ...AuthorLinkWrapper_author\n }\n`\n\nexport default ContentAuthorAndMetadata\n","import { useState } from 'react'\n\nimport type { ActionMeta, CSSObjectWithLabel, GroupBase, StylesConfig } from 'react-select'\nimport Select, { mergeStyles } from 'react-select'\nimport type { SelectComponentsConfig } from 'react-select/dist/declarations/src/components'\nimport type { OnChangeValue } from 'react-select/dist/declarations/src/types'\n\nimport Theme from 'theme'\n\nexport type OptionType = {\n value: string\n label: string\n}\n\ntype DropdownProps = {\n /**\n * The options to display in the dropdown\n */\n options: OptionType[]\n /**\n * Callback function that is called when an option is selected\n * @param selectedOption - The selected option\n */\n onOptionSelected: (selectedOption: OnChangeValue) => void\n /**\n * Placeholder text for the dropdown\n */\n placeholder?: string\n /**\n * Custom components to override the default components\n */\n customComponents?: SelectComponentsConfig>\n /**\n *\n */\n customStyles?: StylesConfig>\n /**\n *\n */\n value?: OptionType\n}\n\nconst Dropdown: React.FC = ({\n options,\n onOptionSelected,\n placeholder,\n customComponents,\n customStyles,\n value,\n}) => {\n const [menuIsOpen, setMenuIsOpen] = useState(false)\n const onMenuOpen = () => setMenuIsOpen(true)\n const onMenuClose = () => setMenuIsOpen(false)\n\n const sortedOptions = options.sort((a, b) => a.label.localeCompare(b.label))\n const handleChange = (\n newValue: OnChangeValue,\n actionValue: ActionMeta,\n ) => {\n if (actionValue.action === 'select-option' && newValue) {\n onOptionSelected(newValue as OptionType)\n }\n }\n\n return (\n \n )\n}\n\nconst selectStyles: StylesConfig> = {\n valueContainer: styles => ({\n ...styles,\n fontSize: Theme.fontSize.XS,\n paddingLeft: '1rem',\n }),\n control: styles => ({\n ...styles,\n width: '11.5rem',\n borderRadius: '8px',\n borderColor: Theme.palette.neutral[300],\n '&:hover': {\n borderColor: Theme.palette.neutral[300],\n },\n boxShadow: 'none',\n margin: '0.25rem',\n fontSize: Theme.fontSize.S,\n fontWeight: Theme.fontWeights.normal,\n }),\n dropdownIndicator: (styles: CSSObjectWithLabel, props) => ({\n ...styles,\n color: Theme.palette.neutral[999],\n transform: props.selectProps.menuIsOpen ? 'rotate(180deg)' : 'rotate(0deg)', // ensure a valid value for transform\n }),\n indicatorSeparator: styles => ({\n ...styles,\n display: 'none', // Hide the separator\n }),\n menuPortal: styles => ({\n ...styles,\n zIndex: Theme.zIndex.layer06, // This only overlaps the scrollbar on mobile with 9999\n }),\n menu: styles => ({\n ...styles,\n width: '11.5rem',\n borderRadius: '8px',\n boxShadow: 'none',\n borderColor: Theme.palette.neutral[300],\n borderStyle: 'solid',\n borderWidth: '1px',\n margin: '0.25rem',\n }),\n option: (styles, { isFocused }) => ({\n ...styles,\n backgroundColor: isFocused ? Theme.palette.neutral[100] : Theme.palette.neutral[0],\n cursor: 'pointer',\n color: Theme.palette.neutral[999],\n fontSize: Theme.fontSize.XS,\n fontWeight: Theme.fontWeights.normal,\n padding: '1rem',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n}\n\nexport default Dropdown\n","import Dropdown from './Dropdown'\n\nexport default Dropdown\nexport * from './Dropdown'\n","import type { DownloadContentDropdown_blocks } from '__generated__/DownloadContentDropdown_blocks.graphql'\n\n/**\n *\n * Given an array of text blocks, download the content of the blocks as a .txt file.\n */\nexport const downloadTextContent = ({\n blocks,\n fileName,\n title,\n}: {\n blocks: DownloadContentDropdown_blocks\n fileName: string\n title: string\n}) => {\n // Create array of blocks which contain markdown text\n const textBlocks = blocks!.flatMap(block => (block.textMarkdown ? [block.textMarkdown] : []))\n\n // Add title to the top of the file with markdown formatting\n const contentWithTitle = `# ${title}\\n\\n${textBlocks!.join('\\n')}`\n\n // Create file by joining blocks with a new line in between each\n const blob = new Blob([contentWithTitle], { type: 'text/plain' })\n\n const url = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.download = `${fileName}.txt`\n link.href = url\n\n link.click()\n}\n\n/**\n * Returns the localised dropdown language name for a given locale. e.g. 'de' -> 'German (Deutsch)\n * Also capitalises the first letter of the localised language name.\n * @param locale - The locale to get the language name for.\n */\nexport const getLanguageDisplayName = (locale: string): string => {\n // Get English language name\n const englishLanguageName = new Intl.DisplayNames(['en-US'], { type: 'language' }).of(locale)\n\n // Get Localized language name\n let localisedLanguageName = new Intl.DisplayNames([locale], { type: 'language' }).of(locale)\n\n if (!englishLanguageName || !localisedLanguageName) return 'Undefined'\n\n // Capitalise first letter of localised language name\n localisedLanguageName =\n localisedLanguageName.charAt(0).toUpperCase() + localisedLanguageName.slice(1)\n\n return `${englishLanguageName} (${localisedLanguageName})`\n}\n","import { useEffect, useMemo, useState } from 'react'\n\nimport { graphql, useFragment, useRefetchableFragment } from 'react-relay'\nimport type { SingleValue, ControlProps, GroupBase, StylesConfig } from 'react-select'\nimport { components } from 'react-select'\nimport styled from 'styled-components'\n\nimport type {\n DownloadContentDropdown_blocks,\n DownloadContentDropdown_blocks$key,\n} from '__generated__/DownloadContentDropdown_blocks.graphql'\nimport type { DownloadContentDropdown_contentPiece$key } from '__generated__/DownloadContentDropdown_contentPiece.graphql'\nimport type { DownloadContentDropdownContentPieceRefetch_viewer$key } from '__generated__/DownloadContentDropdownContentPieceRefetch_viewer.graphql'\nimport Button from 'components/Button'\nimport type { OptionType } from 'components/Dropdown'\nimport Dropdown from 'components/Dropdown'\nimport Icon from 'components/Icon'\nimport { Spinner } from 'components/Spinner'\nimport { trackDownloadContent } from 'lib/analyticsApi'\nimport { downloadTextContent, getLanguageDisplayName } from 'modules/ContentHeader/utils'\nimport Theme from 'theme'\ntype Props = {\n contentPiece: DownloadContentDropdown_contentPiece$key\n viewer: DownloadContentDropdownContentPieceRefetch_viewer$key\n /**\n * Flag to indicate if the component should be rendered in a compact mode\n * (i.e. Search Dropdown and download button are vertically stacked)\n */\n compact?: boolean\n}\n\nconst Control = ({ ...props }: ControlProps>) => {\n const { children } = props\n return (\n \n
\n \n {children}\n
\n
\n )\n}\n\nconst DownloadContentDropdown = ({ contentPiece, viewer, compact }: Props) => {\n const [isLoading, setLoading] = useState(false)\n const [fetchComplete, setFetchComplete] = useState(false)\n const [selectedLocale, setSelectedLocale] = useState('en')\n const [contentPieceData, refetch] = useRefetchableFragment(\n DownloadContentDropdownContentPieceRefetchFragment,\n viewer,\n )\n\n const { localeMapping } = useFragment(\n DownloadContentDropdownTranslatedLocalesFragment,\n contentPiece,\n )\n\n const contentPieceBlocks = useFragment(\n DownloadContentDropdownBlocksFragment,\n contentPieceData.contentPieceTranslation?.blocks || [],\n )\n\n const keyInsightsBlocks = useFragment(\n DownloadContentDropdownBlocksFragment,\n contentPieceData.contentPieceTranslation?.keyInsightsBlocks || [],\n )\n\n const downloadContent = (blocksToDownload: DownloadContentDropdown_blocks) => {\n const id = contentPieceData.contentPieceTranslation?.id\n const fileName = contentPieceData.contentPieceTranslation?.title\n const title = contentPieceData.contentPieceTranslation?.title\n if (!id || !fileName || !title) {\n console.error('Content piece id or title is undefined while downloading content')\n return\n }\n downloadTextContent({ blocks: blocksToDownload, fileName, title })\n trackDownloadContent({ id, title: fileName })\n }\n /**\n * Fetches the content piece data for the selected locale.\n * Updates and downloads the content when the content piece data is fetched.\n */\n useEffect(() => {\n if (isLoading) {\n const mapping = localeMapping?.find(item => item?.languageCode === selectedLocale)\n if (mapping?.contentPieceId) {\n refetch(\n { slugOrId: mapping.contentPieceId },\n {\n fetchPolicy: 'store-and-network',\n onComplete: () => {\n setLoading(false)\n setFetchComplete(true)\n },\n },\n )\n }\n }\n if (contentPieceData && fetchComplete) {\n // Get the content piece blocks to download\n let blocksToDownload = contentPieceBlocks || []\n\n // If key insights blocks exist, then we want to add them before the content\n if (keyInsightsBlocks && keyInsightsBlocks.length > 0) {\n blocksToDownload = [...keyInsightsBlocks, ...blocksToDownload]\n }\n downloadContent(blocksToDownload)\n setFetchComplete(false)\n }\n }, [isLoading, contentPieceData])\n\n // Processes LocaleMappings to construct the localised language options for the dropdown\n const filteredLanguageOptions: OptionType[] = useMemo(() => {\n if (!localeMapping) return []\n\n return localeMapping\n .filter(\n mapping =>\n mapping !== null &&\n mapping.contentPieceId !== null &&\n mapping.contentPieceId !== undefined,\n )\n .map(mapping => ({\n value: mapping!.languageCode,\n label: getLanguageDisplayName(mapping!.languageCode),\n }))\n }, [localeMapping])\n\n const selectedValue = filteredLanguageOptions.find(option => option.value === selectedLocale)\n\n const handleOptionSelected = (option: SingleValue) => {\n if (!option) return\n setSelectedLocale(option?.value)\n }\n const handleOnDownloadClick = () => {\n setLoading(true)\n }\n\n return (\n <>\n \n \n \n \n \n Download Text\n \n \n \n {isLoading && }\n \n \n )\n}\n\ninterface ButtonGroupingProps {\n compact?: boolean\n}\n\nconst DropdownSpinnerContainer = styled.div`\n display: flex;\n margin-bottom: 1rem;\n align-items: center;\n flex-wrap: wrap;\n justify-content: center;\n`\n\nconst ButtonGrouping = styled.div`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n background-color: ${Theme.palette.neutral[100]};\n border-radius: ${Theme.radii.default};\n gap: 0.25rem;\n width: ${props => (props.compact ? 'min-content' : 'auto')};\n @media (max-width: 548px) {\n width: min-content;\n }\n padding: ${props => (props.compact ? '0.5rem' : '0rem')};\n`\n\nconst customDropdownStyles: StylesConfig> = {\n control: styles => ({\n ...styles,\n width: '13.5rem',\n }),\n menu: styles => ({\n ...styles,\n width: '13.5rem',\n }),\n valueContainer: styles => ({\n ...styles,\n width: '9rem',\n paddingLeft: '0.625rem',\n }),\n}\n\nconst ButtonWrapper = styled.div`\n margin-right: 0.5rem;\n @media (max-width: 548px) {\n margin-bottom: 0.75rem;\n }\n`\n\nconst DownloadContentDropdownTranslatedLocalesFragment = graphql`\n fragment DownloadContentDropdown_contentPiece on ContentPieceInterface {\n localeMapping {\n languageCode\n contentPieceId\n }\n }\n`\n\nconst DownloadContentDropdownContentPieceRefetchFragment = graphql`\n fragment DownloadContentDropdownContentPieceRefetch_viewer on Viewer\n @argumentDefinitions(slugOrId: { type: \"String!\" })\n @refetchable(queryName: \"DownloadContentDropdownContentPieceRefetchQuery\") {\n contentPieceTranslation: contentPiece(slugOrId: $slugOrId) {\n id\n title\n isAvailableToProducts\n blocks {\n ...DownloadContentDropdown_blocks\n }\n keyInsightsBlocks {\n id\n ...DownloadContentDropdown_blocks\n }\n }\n }\n`\nconst DownloadContentDropdownBlocksFragment = graphql`\n fragment DownloadContentDropdown_blocks on ContentPieceBlock @relay(plural: true) {\n ... on TextBlock {\n textMarkdown\n }\n }\n`\n\nexport default DownloadContentDropdown\n","import { graphql, useFragment } from 'react-relay'\n\nimport type { ContentDownloadBlock_authorization$key } from '__generated__/ContentDownloadBlock_authorization.graphql'\nimport type { ContentDownloadBlock_contentPiece$key } from '__generated__/ContentDownloadBlock_contentPiece.graphql'\nimport type { DownloadContentDropdownContentPieceRefetch_viewer$key } from '__generated__/DownloadContentDropdownContentPieceRefetch_viewer.graphql'\nimport DownloadContentDropdown from 'modules/ContentHeader/DownloadContentDropdown'\n\ntype ContentDownloadBlockProps = {\n authorization: ContentDownloadBlock_authorization$key\n viewer: DownloadContentDropdownContentPieceRefetch_viewer$key\n contentPiece: ContentDownloadBlock_contentPiece$key\n compact?: boolean\n}\n\nconst ContentDownloadBlock = ({\n contentPiece: contentPieceKey,\n authorization,\n viewer,\n compact,\n}: ContentDownloadBlockProps) => {\n const {\n roles: { isB2bUser },\n } = useFragment(ContentDownloadBlockAuthorizationFragment, authorization)\n\n const contentPiece = useFragment(ContentDownloadBlockContentFragment, contentPieceKey)\n\n const { isAvailableToProducts } = contentPiece\n\n return (\n <>\n {isB2bUser && isAvailableToProducts && (\n \n )}\n \n )\n}\n\nconst ContentDownloadBlockAuthorizationFragment = graphql`\n fragment ContentDownloadBlock_authorization on Authorization {\n roles {\n isB2bUser\n }\n }\n`\n\nconst ContentDownloadBlockContentFragment = graphql`\n fragment ContentDownloadBlock_contentPiece on ContentPieceInterface {\n ...DownloadContentDropdown_contentPiece\n\n isAvailableToProducts\n }\n`\n\nexport default ContentDownloadBlock\n","import React from 'react'\n\nimport Hide from 'components/Hide'\n\n// type\ntype Props = {\n children: React.ReactElement\n condition: boolean\n on: Array\n}\n\n/*\n A wrapper component to hide a component based on a condition (other than mobile / desktop)\n used to bypass the parsing issues that can occur when using a conditional wrapper\n*/\n\nconst ConditionalHide = ({ children, condition, on }: Props) =>\n condition ? {children} : children\n\nexport default ConditionalHide\n","export default {\"src\":\"/_next/static/media/audio-only-phone.3407cf73.png\",\"height\":1209,\"width\":680,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAICAMAAADp7a43AAAAFVBMVEUgIy4tNEEmKjQrLDAsN0kdHyY3OUHVmh6rAAAABnRSTlP9+vnm//5aDpL8AAAACXBIWXMAACE4AAAhOAFFljFgAAAAIUlEQVR4nGNgZmVlZmBiACJGFhZGJIKJgZUBQjCwsTEAAAZQAE2QybAOAAAAAElFTkSuQmCC\",\"blurWidth\":4,\"blurHeight\":8};","import React from 'react'\n\nimport { graphql, useFragment } from 'react-relay'\n\nimport type { AudioOnlyBanner_contentPiece$key } from '__generated__/AudioOnlyBanner_contentPiece.graphql'\nimport ConditionalHide from 'components/ConditionalHide'\nimport Heading from 'components/Heading'\nimport Hide from 'components/Hide'\nimport Image from 'components/Image'\nimport ServerImage from 'components/Image/Relay/ServerImage'\nimport Paragraph from 'components/Paragraph'\nimport Box from 'components/Primitives/Box'\nimport Set from 'components/Set'\nimport AppStoreLinks from 'modules/AppStore/AppStoreLinks'\nimport audioOnlyPhone from 'public/images/audio-only-phone.png'\nimport { zIndex } from 'theme'\n\ntype Props = {\n contentPiece: AudioOnlyBanner_contentPiece$key\n hideBackground?: boolean\n title?: string\n subtitle?: string\n hidePhoneModelOnMobile?: boolean\n subtitleSizeMobile?: string\n}\n\nconst DEFAULT_TITLE = 'This story is only available in audio. Download the app to listen'\nconst DEFAULT_SUBTITLE = `1000+ stories, insights, deep-dives, interviews, podcasts, and more.\n\n Anytime, anywhere.`\n\nconst AudioOnlyBanner = ({\n contentPiece: contentPieceKey,\n hideBackground,\n hidePhoneModelOnMobile,\n title = DEFAULT_TITLE,\n subtitle = DEFAULT_SUBTITLE,\n subtitleSizeMobile = '17px',\n}: Props) => {\n const contentPiece = useFragment(AudioOnlyBannerFragment, contentPieceKey)\n const { headerImage, title: contentPieceTitle } = contentPiece\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {title}\n \n \n \n {subtitle}\n \n \n\n \n \n \n \n \n )\n}\n\nconst AudioOnlyBannerFragment = graphql`\n fragment AudioOnlyBanner_contentPiece on ContentPieceInterface {\n headerImage {\n ...ServerImage_image\n }\n title\n }\n`\n\nexport default AudioOnlyBanner\n","import React from 'react'\n\nimport { graphql, useFragment } from 'react-relay'\nimport { useDialogState } from 'reakit/Dialog'\nimport { css } from 'styled-components'\n\nimport type { ListenButton_contentPiece$key } from '__generated__/ListenButton_contentPiece.graphql'\nimport { Button } from 'components/Button'\nimport Card from 'components/Card'\nimport Column from 'components/Column'\nimport Icon from 'components/Icon'\nimport Modal from 'components/Modal'\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Box from 'components/Primitives/Box'\nimport { trackAttemptListenContent } from 'lib/analyticsApi'\nimport AudioOnlyBanner from 'modules/AudioOnlyBanner'\n\ntype Props = {\n contentPiece: ListenButton_contentPiece$key\n} & BoxProps\n\ntype AudioOnlyModalProps = {\n toggleModal: () => void\n} & Props\n\nconst AudioOnlyModal = ({ toggleModal, contentPiece: contentPieceKey }: AudioOnlyModalProps) => {\n const contentPiece = useFragment(ListenButtonFragment, contentPieceKey)\n return (\n // @ts-ignore\n \n \n \n \n \n \n \n \n )\n}\nconst ListenButton = ({ contentPiece: contentPieceKey, ...props }: Props) => {\n const contentPiece = useFragment(ListenButtonFragment, contentPieceKey)\n const dialog = useDialogState()\n\n const onPressListen = () => {\n // track press listen\n const {\n id,\n trackingTitle,\n isPremium,\n hasBlocks,\n hasAudio,\n contentPieceType: { trackingName: typeTrackingName },\n } = contentPiece\n\n const trackingProps = {\n id: id,\n type: typeTrackingName,\n walled: isPremium,\n title: trackingTitle,\n parentTitle: null,\n parentId: null,\n chapters: false,\n text: hasBlocks,\n audio: hasAudio,\n }\n\n trackAttemptListenContent(trackingProps)\n\n // show modal\n dialog.toggle()\n }\n\n const audioOnly = contentPiece.hasAudio && !contentPiece.hasBlocks\n\n const showButton = contentPiece.hasAudio && !audioOnly\n\n if (!showButton) return null\n\n return (\n // Have to wrap with a Box rather than just a fragment due to the modal Box interacting as an element\n // in the DOM. Being a fragment leads to unwanted side effects when this component is used in a set or\n // column component that uses the 'spread' prop, i.e. the UI has a large gap.\n \n \n \n \n \n \n )\n}\n\nconst ListenButtonFragment = graphql`\n fragment ListenButton_contentPiece on ContentPieceInterface {\n id\n title\n trackingTitle\n subtitle\n readingTime\n isPremium\n hasBlocks\n hasAudio\n contentPieceType {\n name\n trackingName\n }\n ...AudioOnlyBanner_contentPiece\n }\n`\n\nexport default ListenButton\n","import { Item } from '@radix-ui/react-dropdown-menu'\nimport { transparentize } from 'polished'\nimport styled from 'styled-components'\n\nimport type { SocialShareContentVariants } from './consts'\nimport { socialShares } from './consts'\nimport { trackSocialClick, getSocialShareLink, useCopyToClipboard } from './utils'\n\nimport Icon from 'components/Icon'\nimport Link from 'components/Link'\nimport Paragraph from 'components/Paragraph'\nimport { fonts } from 'theme'\n\ntype ShareLinkProps = {\n contentPieceId: string\n contentPieceTitle: string\n network: SocialShareContentVariants | 'copy'\n deepLink: string\n canonicalLink: string\n slug: string\n}\n\nconst ShareContentDropdownItem = ({\n contentPieceId,\n contentPieceTitle,\n network,\n deepLink,\n slug,\n canonicalLink,\n}: ShareLinkProps) => {\n const { copyToClipboard, copied } = useCopyToClipboard({\n canonicalLink,\n contentPieceId,\n contentPieceTitle,\n slug,\n })\n\n if (network === 'copy') {\n const onSelect = (event: Event) => {\n event.preventDefault()\n copyToClipboard()\n }\n return (\n \n \n \n {copied ? 'Copied!' : 'Copy Link'}\n \n \n )\n }\n\n const onSelect = () => trackSocialClick(network, contentPieceId, contentPieceTitle, 'top')\n\n return (\n \n \n \n \n {socialShares[network].label}\n \n \n \n )\n}\n\nconst LinkItem = styled(Item)`\n border-bottom: 1px solid ${({ theme }) => theme.palette.neutral[200]};\n text-decoration: none;\n cursor: pointer;\n\n &:hover {\n background-color: ${({ theme }) => transparentize(0.3, theme.palette.neutral[200])};\n }\n\n &:last-child {\n border-bottom: none;\n }\n`\n\nconst IconAndLabel = styled.div`\n display: flex;\n flex-direction: row;\n padding: 0.5rem 1rem;\n`\n\nexport default ShareContentDropdownItem\n","import { Root, Trigger, Portal, Content } from '@radix-ui/react-dropdown-menu'\nimport styled from 'styled-components'\n\nimport { SocialShareContentVariants } from './consts'\nimport ShareContentDropdownItem from './ShareContentDropdownItem'\n\nimport Icon from 'components/Icon'\nimport theme from 'theme'\n\nexport type ShareContentDropdownProps = {\n deepLink: string\n contentPieceId: string\n contentPieceTitle: string\n canonicalLink: string\n slug: string\n}\n\nconst ShareContentDropdown = ({\n contentPieceId,\n contentPieceTitle,\n deepLink,\n canonicalLink,\n slug,\n}: ShareContentDropdownProps) => {\n return (\n \n \n \n \n \n \n\n \n \n {/* \"Copy\" item */}\n \n {/* All other social share items */}\n {Object.values(SocialShareContentVariants).map(network => (\n \n ))}\n \n \n \n )\n}\n\nconst TriggerButton = styled.button`\n all: unset;\n padding: 0.5rem;\n &:hover {\n cursor: pointer;\n }\n`\n\nconst DropdownContent = styled(Content)`\n background-color: ${({ theme }) => theme.palette.neutral[0]};\n box-shadow: ${({ theme }) => theme.elevation[1]};\n\n border-radius: ${({ theme }) => theme.radii.default};\n border: 1px solid;\n border-color: ${({ theme }) => theme.palette.neutral[100]};\n\n @media (max-width: 500px) {\n width: 100vw;\n // Above \"free article\" banner\n z-index: ${({ theme }) => theme.zIndex.layer05};\n }\n`\n\nexport default ShareContentDropdown\n","import { graphql, useFragment } from 'react-relay'\n\nimport type { ContentDownloadBlock_authorization$key } from '__generated__/ContentDownloadBlock_authorization.graphql'\nimport type { ContentHeaderDetails_contentPiece$key } from '__generated__/ContentHeaderDetails_contentPiece.graphql'\nimport type { DownloadContentDropdownContentPieceRefetch_viewer$key } from '__generated__/DownloadContentDropdownContentPieceRefetch_viewer.graphql'\nimport ContentPieceBookmarkIcon from 'components/BookmarkIcon/Relay/ContentPieceBookmarkIcon'\nimport Heading from 'components/Heading'\nimport Box from 'components/Primitives/Box'\nimport Set from 'components/Set'\nimport ContentDownloadBlock from 'modules/ContentHeader/ContentDownloadBlock'\nimport ListenButton from 'modules/ListenButton'\nimport ShareContentDropdown from 'modules/ShareContent/ShareContentDropdown'\nimport { fonts } from 'theme'\n\ntype ContentHeaderDetailsProps = {\n contentPiece: ContentHeaderDetails_contentPiece$key\n authorization: ContentDownloadBlock_authorization$key\n viewer: DownloadContentDropdownContentPieceRefetch_viewer$key\n}\n\nconst ContentHeaderDetails = ({\n contentPiece: contentPieceKey,\n authorization,\n viewer,\n}: ContentHeaderDetailsProps) => {\n const contentPiece = useFragment(ContentHeaderDetailsContentPieceFragment, contentPieceKey)\n const { id, title, deepLink, canonicalLink, slug } = contentPiece\n\n const {\n roles: { isB2bUser },\n } = useFragment(ContentHeaderDetailsAuthorizationFragment, authorization)\n\n const ActionButtons = () => (\n \n \n {!isB2bUser && }\n\n \n \n\n \n \n \n \n \n )\n\n return (\n <>\n \n {title}\n \n\n \n \n )\n}\n\nconst ContentHeaderDetailsContentPieceFragment = graphql`\n fragment ContentHeaderDetails_contentPiece on ContentPieceInterface {\n ...ListenButton_contentPiece\n ...ContentPieceBookmarkIcon_contentPiece\n ...ContentDownloadBlock_contentPiece\n\n id\n title\n deepLink\n canonicalLink\n slug\n }\n`\n\nconst ContentHeaderDetailsAuthorizationFragment = graphql`\n fragment ContentHeaderDetails_authorization on Authorization {\n roles {\n isB2bUser\n }\n }\n`\n\nexport default ContentHeaderDetails\n","import { graphql, useFragment } from 'react-relay'\n\nimport ContentAuthorAndMetadata from '../ContentAuthorAndMetadata'\n\nimport ContentHeaderDetails from './ContentHeaderDetails'\n\nimport type { ContentDownloadBlock_authorization$key } from '__generated__/ContentDownloadBlock_authorization.graphql'\nimport type { DefaultContentHeader_contentPiece$key } from '__generated__/DefaultContentHeader_contentPiece.graphql'\nimport type { DownloadContentDropdownContentPieceRefetch_viewer$key } from '__generated__/DownloadContentDropdownContentPieceRefetch_viewer.graphql'\nimport AspectRatioBox from 'components/AspectRatioBox'\nimport ServerImage from 'components/Image/Relay/ServerImage'\nimport Box from 'components/Primitives/Box'\nimport Set from 'components/Set'\nimport { ImageRatios } from 'consts/index'\nimport AudioOnlyBanner from 'modules/AudioOnlyBanner'\n\ntype DefaultContentHeaderProps = {\n contentPiece: DefaultContentHeader_contentPiece$key\n authorization: ContentDownloadBlock_authorization$key\n isAudioOnlySingle: boolean\n viewer: DownloadContentDropdownContentPieceRefetch_viewer$key\n}\n\n/**\n * The content page header to be used in most cases. Displays a 2:1 ratio image.\n */\nconst DefaultContentHeader = ({\n contentPiece: contentPieceKey,\n isAudioOnlySingle,\n authorization,\n viewer,\n}: DefaultContentHeaderProps) => {\n const contentPiece = useFragment(DefaultContentHeaderContentPieceFragment, contentPieceKey)\n\n const { title, headerImage, author } = contentPiece\n\n return (\n \n \n\n \n {!isAudioOnlySingle ? (\n \n \n \n ) : (\n \n )}\n\n \n \n \n )\n}\n\nconst DefaultContentHeaderContentPieceFragment = graphql`\n fragment DefaultContentHeader_contentPiece on ContentPieceInterface {\n ...ContentHeaderDetails_contentPiece\n ...AudioOnlyBanner_contentPiece\n ...ContentMetadata_contentPiece\n\n id\n title\n\n headerImage {\n ...ServerImage_image\n }\n\n author {\n ...AuthorLinkWrapper_author\n ...ContentAuthorAndMetadata_author\n }\n }\n`\n\nexport default DefaultContentHeader\n","import React from 'react'\n\nimport type { LinkProps } from './Link';\nimport Link from './Link'\n\nimport Box from 'components/Primitives/Box'\nimport type { Prettify } from 'types/Prettify'\n\ntype Props = Omit & {\n url: LinkProps['url'] | null\n}\n\nexport type NullableLinkProps = Prettify\n\n/**\n * Extends the behavior of the Link component but allows the url to be null.\n * This removes some of the Link behavior such as hover effects and being clickable.\n */\nconst NullableLink = ({ url, children, target, underline, as, ...rest }: NullableLinkProps) =>\n url != null ? (\n \n {children}\n \n ) : (\n \n {children}\n \n )\n\nexport default NullableLink\n","import type { ReactElement } from 'react'\nimport React from 'react'\n\nimport { graphql, useFragment } from 'react-relay'\nimport styled from 'styled-components'\n\nimport type { ContentPieceSponsor_contentPiece$key } from '__generated__/ContentPieceSponsor_contentPiece.graphql'\nimport AspectRatioBox from 'components/AspectRatioBox'\nimport Heading from 'components/Heading'\nimport ServerImage from 'components/Image/Relay/ServerImage'\nimport NullableLink from 'components/Link/NullableLink'\nimport Box from 'components/Primitives/Box'\nimport { ImageRatios } from 'consts/index'\nimport { fonts } from 'theme'\n\nconst ContentFragment = graphql`\n fragment ContentPieceSponsor_contentPiece on ContentPieceInterface {\n sponsoringCompany {\n id\n name\n link\n logo {\n ...ServerImage_image\n }\n }\n }\n`\n\ntype RelayProps = {\n contentPiece: ContentPieceSponsor_contentPiece$key\n}\n\nexport type ContentPieceSponsorProps = RelayProps\n\nexport const ContentPieceSponsor = ({\n contentPiece,\n}: ContentPieceSponsorProps): ReactElement | null => {\n const { sponsoringCompany } = useFragment(ContentFragment, contentPiece)\n\n if (!sponsoringCompany) return null\n\n const { link, logo: image, name } = sponsoringCompany\n\n // If the image has a link we should describe the intention of the link\n // not the contents of the image.\n const imageAltText =\n link == null\n ? `Logo of article sponsor, ${name}`\n : `Go to the article sponsors website, ${name}.`\n\n return (\n \n \n Sponsored by\n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default ContentPieceSponsor\n\nconst Container = styled(Box)`\n overflow: hidden;\n`\n\nconst StyledLink = styled(NullableLink)`\n &:hover {\n text-decoration: none !important;\n }\n`\n","import { graphql, useFragment } from 'react-relay'\n\nimport type { ContentDownloadBlock_authorization$key } from '__generated__/ContentDownloadBlock_authorization.graphql'\nimport type { DownloadContentDropdownContentPieceRefetch_viewer$key } from '__generated__/DownloadContentDropdownContentPieceRefetch_viewer.graphql'\nimport type { EvergreenContentHeader_contentPiece$key } from '__generated__/EvergreenContentHeader_contentPiece.graphql'\nimport AspectRatioBox from 'components/AspectRatioBox'\nimport ContentPieceBookmarkIcon from 'components/BookmarkIcon/Relay/ContentPieceBookmarkIcon'\nimport Divider from 'components/Divider'\nimport Heading from 'components/Heading'\nimport Hide from 'components/Hide'\nimport ServerImage from 'components/Image/Relay/ServerImage'\nimport Box from 'components/Primitives/Box'\nimport Set from 'components/Set'\nimport { ImageRatios } from 'consts/index'\nimport ContentDownloadBlock from 'modules/ContentHeader/ContentDownloadBlock'\nimport ContentPieceSponsor from 'modules/ContentHeader/ContentPieceSponsor'\nimport ContentMetadata from 'modules/ContentMetadata'\nimport ListenButton from 'modules/ListenButton'\nimport ShareContent from 'modules/ShareContent'\n\ntype EvergreenContentHeaderProps = {\n contentPiece: EvergreenContentHeader_contentPiece$key\n authorization: ContentDownloadBlock_authorization$key\n viewer: DownloadContentDropdownContentPieceRefetch_viewer$key\n}\n\n/**\n * Content piece header to be used for evergreen content. Renders a 1:1 ratio image.\n */\nconst EvergreenContentHeader = ({\n contentPiece: contentPieceKey,\n authorization,\n viewer,\n}: EvergreenContentHeaderProps) => {\n const contentPiece = useFragment(EvergreenContentHeaderFragment, contentPieceKey)\n const { id, title, headerImage, deepLink, canonicalLink, slug } = contentPiece\n\n const {\n roles: { isB2bUser },\n } = useFragment(EvergreenContentHeaderAuthorizationFragment, authorization)\n\n return (\n \n \n \n \n {title}\n \n\n \n \n\n \n \n \n \n\n \n {!isB2bUser && }\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n )\n}\n\nconst EvergreenContentHeaderFragment = graphql`\n fragment EvergreenContentHeader_contentPiece on ContentPieceInterface {\n ...ContentMetadata_contentPiece\n ...ListenButton_contentPiece\n ...ContentPieceSponsor_contentPiece\n ...ContentPieceBookmarkIcon_contentPiece\n ...ContentDownloadBlock_contentPiece\n\n canonicalLink\n id\n deepLink\n title\n slug\n headerImage {\n ...ServerImage_image\n }\n }\n`\n\nconst EvergreenContentHeaderAuthorizationFragment = graphql`\n fragment EvergreenContentHeader_authorization on Authorization {\n roles {\n isB2bUser\n }\n }\n`\n\nexport default EvergreenContentHeader\n","import { graphql, useFragment } from 'react-relay'\n\nimport DefaultContentHeader from './DefaultContentHeader/DefaultContentHeader'\nimport EvergreenContentHeader from './EvergreenContentHeader/EvergreenContentHeader'\n\nimport type { ContentDownloadBlock_authorization$key } from '__generated__/ContentDownloadBlock_authorization.graphql'\nimport type { ContentHeader_contentPiece$key } from '__generated__/ContentHeader_contentPiece.graphql'\nimport type { DownloadContentDropdownContentPieceRefetch_viewer$key } from '__generated__/DownloadContentDropdownContentPieceRefetch_viewer.graphql'\nimport getUsesSquareImage from 'utils/contentTypeImageLogic/getUsesSquareImage'\n\ntype ContentHeaderProps = {\n contentPiece: ContentHeader_contentPiece$key\n authorization: ContentDownloadBlock_authorization$key\n isAudioOnlySingle: boolean\n viewer: DownloadContentDropdownContentPieceRefetch_viewer$key\n}\n\nconst ContentHeader = ({\n contentPiece: contentPieceKey,\n isAudioOnlySingle,\n authorization,\n viewer,\n}: ContentHeaderProps) => {\n const contentPiece = useFragment(ContentHeaderFragment, contentPieceKey)\n const {\n contentPieceType: { name: contentPieceTypeName },\n } = contentPiece\n\n if (isAudioOnlySingle)\n return (\n \n )\n\n return getUsesSquareImage(contentPieceTypeName) ? (\n \n ) : (\n \n )\n}\n\nconst ContentHeaderFragment = graphql`\n fragment ContentHeader_contentPiece on ContentPieceInterface {\n ...DefaultContentHeader_contentPiece\n ...EvergreenContentHeader_contentPiece\n\n contentPieceType {\n name\n }\n }\n`\n\nexport default ContentHeader\n","import ContentHeader from './ContentHeader'\n\nexport default ContentHeader\n","import type { ReactElement } from 'react'\n\nimport styled from 'styled-components'\n\nimport Box from 'components/Primitives/Box'\nimport type { ThemedComponent } from 'theme/Types'\n\ntype InsightCardProps = {\n id?: string\n children: ReactElement\n}\n\ntype StyledProps = ThemedComponent\n\nconst InsightCard = styled(Box)`\n background-color: ${({ theme }) => theme.palette.accent[50]};\n border-radius: ${({ theme }) => theme.radii.default};\n height: 100%;\n`\n\nexport default InsightCard\n","import React from 'react'\n\nimport { graphql, useFragment } from 'react-relay'\nimport styled from 'styled-components'\n\nimport InsightCard from './InsightCard'\n\nimport type { KeyInsightsBlock_contentPiece$key } from '__generated__/KeyInsightsBlock_contentPiece.graphql'\nimport { MarkdownText } from 'components/Markdown'\nimport List from 'components/Markdown/List'\nimport ListItem from 'components/Markdown/ListItem'\n\ntype KeyInsightsBlockProps = {\n contentPiece: KeyInsightsBlock_contentPiece$key\n}\n\nconst KeyInsightsBlock = ({ contentPiece }: KeyInsightsBlockProps) => {\n const { keyInsightsBlocks } = useFragment(ContentPieceFragment, contentPiece)\n\n if (keyInsightsBlocks == null || keyInsightsBlocks.length < 1) return null\n\n return (\n \n \n {(keyInsightsBlocks || []).map(block => (\n \n \n \n ))}\n \n \n )\n}\n\nconst StyledListItem = styled(ListItem)`\n &:not(:last-child) {\n margin-bottom: 1.5rem;\n }\n`\n\nconst ContentPieceFragment = graphql`\n fragment KeyInsightsBlock_contentPiece on ContentPieceInterface {\n keyInsightsBlocks {\n id\n ... on TextBlock {\n textMarkdown\n }\n }\n }\n`\n\nexport default KeyInsightsBlock\n","import React from 'react'\n\nimport { graphql, useFragment } from 'react-relay'\n\nimport InsightCard from './InsightCard'\n\nimport type { KeyInsightsCarousel_contentPiece$key } from '__generated__/KeyInsightsCarousel_contentPiece.graphql'\nimport Carousel from 'components/Carousel'\nimport { MarkdownText } from 'components/Markdown'\n\nconst CARD_WIDTH = 230\n\ntype KeyInsightsCarouselProps = {\n contentPiece: KeyInsightsCarousel_contentPiece$key\n}\n\nconst KeyInsightsCarousel = ({ contentPiece }: KeyInsightsCarouselProps) => {\n const { keyInsightsBlocks } = useFragment(ContentPieceFragment, contentPiece)\n\n if (keyInsightsBlocks == null || keyInsightsBlocks.length < 1) return null\n\n return (\n \n {(keyInsightsBlocks || []).map(block => (\n \n \n \n ))}\n \n )\n}\n\nconst ContentPieceFragment = graphql`\n fragment KeyInsightsCarousel_contentPiece on ContentPieceInterface {\n keyInsightsBlocks {\n id\n ... on TextBlock {\n textMarkdown\n }\n }\n }\n`\n\nexport default KeyInsightsCarousel\n","import React from 'react'\n\nimport { graphql, useFragment } from 'react-relay'\n\nimport KeyInsightsBlock from './KeyInsightsBlock'\nimport KeyInsightsCarousel from './KeyInsightsCarousel'\n\nimport type { KeyInsights_contentPiece$key } from '__generated__/KeyInsights_contentPiece.graphql'\nimport Hide from 'components/Hide'\nimport Box from 'components/Primitives/Box'\n\ntype KeyInsightsProps = {\n contentPiece: KeyInsights_contentPiece$key\n}\n\nconst KeyInsights = (props: KeyInsightsProps) => {\n const contentPiece = useFragment(ContentPieceFragment, props.contentPiece)\n\n if (contentPiece.keyInsightsBlocks == null || contentPiece.keyInsightsBlocks.length < 1)\n return null\n\n return (\n \n \n \n \n\n \n \n \n \n )\n}\n\nconst ContentPieceFragment = graphql`\n fragment KeyInsights_contentPiece on ContentPieceInterface {\n ...KeyInsightsCarousel_contentPiece\n ...KeyInsightsBlock_contentPiece\n\n keyInsightsBlocks {\n id\n ... on TextBlock {\n textMarkdown\n }\n }\n }\n`\n\nexport default KeyInsights\n","import KeyInsights from './KeyInsights'\n\nexport default KeyInsights\n","import { graphql, useFragment } from 'react-relay'\nimport styled from 'styled-components'\n\nimport type { MentionedAssets_contentPiece$key } from '__generated__/MentionedAssets_contentPiece.graphql'\nimport AssetPreviewCard from 'components/AssetPreviewCard'\nimport AssetLogo from 'components/AssetPreviewCard/AssetLogo'\nimport Carousel from 'components/Carousel'\nimport Heading from 'components/Heading'\nimport type { AssetClickedTrackingProps } from 'lib/analyticsApi'\nimport { fonts } from 'theme'\n\ntype Props = {\n contentPiece: MentionedAssets_contentPiece$key | null\n}\n\nconst MentionedAssets = ({ contentPiece: contentPieceKey }: Props) => {\n const contentPiece = useFragment(MentionedAssetsFragment, contentPieceKey)\n if (!contentPiece) return null\n\n const { financialAssets } = contentPiece\n if (!financialAssets || financialAssets.length === 0) return null\n\n return (\n \n \n Mentioned in story\n \n \n {financialAssets.map(asset => {\n const {\n name,\n symbol,\n logo: { thumbnail },\n } = asset\n\n const assetLogo = \n\n const trackingParams: AssetClickedTrackingProps = {\n assetName: name,\n assetSymbol: symbol,\n contentPieceTitle: contentPiece.title,\n }\n\n return (\n \n )\n })}\n \n \n )\n}\n\nconst Container = styled.div`\n padding-bottom: 2rem;\n`\n\nconst MentionedAssetsFragment = graphql`\n fragment MentionedAssets_contentPiece on ContentPieceInterface {\n title\n financialAssets {\n symbol\n name\n logo {\n thumbnail\n }\n }\n }\n`\n\nexport default MentionedAssets\n","import MentionedAssets from './MentionedAssets'\nexport default MentionedAssets\n","import React from 'react'\n\nimport { NextSeo, ArticleJsonLd } from 'next-seo'\nimport { graphql, useFragment } from 'react-relay'\n\nimport type { ContentPieceSEO_contentPiece$key } from '__generated__/ContentPieceSEO_contentPiece.graphql'\n\ntype Props = {\n contentPiece: ContentPieceSEO_contentPiece$key\n}\n\n/*\n\n this component handles SEO / link unfurling on socials for a content piece\n\n we may need to adjust / add more fields as we go!\n\n*/\n\nconst ContentPieceSEO = ({ contentPiece }: Props) => {\n const {\n title,\n imageForSeo,\n subtitle,\n firstPublishedAt,\n byline,\n seoTitle,\n searchDescription,\n canonicalLink,\n } = useFragment(ContentPieceSEOFragment, contentPiece)\n\n const _title = seoTitle || title\n const _description = searchDescription || subtitle\n return (\n <>\n \n \n \n )\n}\n\nconst ContentPieceSEOFragment = graphql`\n fragment ContentPieceSEO_contentPiece on ContentPieceInterface {\n title\n imageForSeo: headerImage {\n url: full\n }\n subtitle\n firstPublishedAt\n id\n ... on PublicContentPiece {\n globalContentPieceId\n }\n byline\n seoTitle\n searchDescription\n canonicalLink\n }\n`\n\nexport default ContentPieceSEO\n","import { Fragment } from 'react'\n\nimport { graphql, useFragment } from 'react-relay'\n\nimport type { ContentDownloadBlock_authorization$key } from '__generated__/ContentDownloadBlock_authorization.graphql'\nimport type { MainContentSection_contentPiece$key } from '__generated__/MainContentSection_contentPiece.graphql'\nimport type { MainContentSectionViewer_viewer$key } from '__generated__/MainContentSectionViewer_viewer.graphql'\nimport InlineAdvert from 'components/Advertising/InlineAdvert'\nimport Hide from 'components/Hide'\nimport OpacityOverlay from 'components/OpacityOverlay'\nimport Box from 'components/Primitives/Box'\nimport Set from 'components/Set'\nimport InlineSignup from 'modules/Auth/InlineSignup'\nimport Block from 'modules/ContentDisplay/Block/Block'\nimport useContentScrollTracking from 'modules/ContentDisplay/Hooks/useContentScrollTracking'\nimport ContentFooter from 'modules/ContentFooter/ContentFooter'\nimport ContentHeader from 'modules/ContentHeader'\nimport KeyInsights from 'modules/KeyInsights'\nimport MentionedAssets from 'modules/MentionedAssets'\nimport ContentPieceSEO from 'modules/SEO/ContentPieceSEO'\n\ntype Props = {\n contentPiece: MainContentSection_contentPiece$key\n authorization: ContentDownloadBlock_authorization$key\n onCompleteUnlockedArticle: () => void\n hasContentAccess: boolean\n showInlineSignup: boolean\n viewer: MainContentSectionViewer_viewer$key\n showInlineAdvert: boolean\n}\n\nconst MainContentSection = ({\n contentPiece: contentPieceKey,\n authorization,\n onCompleteUnlockedArticle,\n hasContentAccess,\n showInlineSignup,\n viewer: viewerKey,\n showInlineAdvert,\n}: Props) => {\n const contentPiece = useFragment(MainContentSectionFragment, contentPieceKey)\n const viewer = useFragment(MainContentSectionViewerFragment, viewerKey)\n\n const {\n blocks,\n hasAudio,\n hasBlocks,\n globalContentPieceId,\n glossaryTerms,\n id: contentPieceId,\n } = contentPiece\n\n const showPaywall = !hasContentAccess\n\n const isAudioOnlySingle = hasAudio && !hasBlocks\n\n // track when the user scrolls past a threshold\n const [ref] = useContentScrollTracking({\n trackingEnabled: !showPaywall,\n onScrollPastThreshold: onCompleteUnlockedArticle,\n globalID: globalContentPieceId,\n })\n\n return (\n <>\n \n \n \n \n {!showPaywall && }\n\n {showInlineSignup && (\n \n \n \n )}\n\n \n {blocks &&\n blocks.map((block, index) => (\n \n {\n //only show first section behind fade on mobile\n showPaywall && index > 0 ? (\n \n \n \n ) : (\n \n )\n }\n {/* Show inline advert about a third of the way through the article */}\n {showInlineAdvert &&\n index === Math.floor(blocks.length / 3) && (\n \n )}\n \n ))}\n {!!blocks && }\n \n\n \n\n {showPaywall ? (\n \n ) : (\n \n )}\n \n \n \n )\n}\n\nconst MainContentSectionFragment = graphql`\n fragment MainContentSection_contentPiece on ContentPieceInterface {\n ...ContentPieceSEO_contentPiece\n ...KeyInsights_contentPiece\n ...ContentHeader_contentPiece\n ...ContentFooter_contentPiece\n\n title\n headerImage {\n ...ServerImage_image\n }\n globalContentPieceId\n trackingTitle\n subtitle\n firstPublishedAt\n readingTime\n isPremium\n deepLink\n hasBlocks\n hasAudio\n id\n canonicalLink\n byline\n contentPieceType {\n name\n trackingName\n }\n blocks {\n ...Block_block\n }\n glossaryTerms {\n ...Block_glossaryTerms\n }\n ...MentionedAssets_contentPiece\n }\n`\n\nconst MainContentSectionViewerFragment = graphql`\n fragment MainContentSectionViewer_viewer on Viewer\n @argumentDefinitions(slugOrId: { type: \"String!\" }) {\n ...useEnrollInExperiment_viewer\n ...DownloadContentDropdownContentPieceRefetch_viewer @arguments(slugOrId: $slugOrId)\n ...InlineAdvert_viewer\n }\n`\n\nexport default MainContentSection\n","import MainContentSection from './MainContentSection'\n\nexport default MainContentSection\n","import { graphql, useFragment } from 'react-relay'\nimport styled from 'styled-components'\n\nimport type { MostPopularContent_viewer$key } from '__generated__/MostPopularContent_viewer.graphql'\nimport ContentPieceCardWrapper from 'components/ContentCards/DataWrappers/Relay/ContentPieceCardWrapper'\nimport SmallCard from 'components/ContentCards/SmallCard/SmallCard'\nimport Box from 'components/Primitives/Box'\nimport { trackClickContentCard } from 'lib/analyticsApi'\nimport LargeHeader from 'modules/ContentSection/LargeHeader'\nimport type { ThemedComponent } from 'theme/index'\n\ntype MostPopularProps = {\n viewer: MostPopularContent_viewer$key\n}\n\nconst MostPopularContent = ({ viewer }: MostPopularProps) => {\n const { mostPopularContentPieces } = useFragment(MostPopularFragment, viewer)\n const { authorization } = useFragment(MostPopularFragment, viewer)\n\n if (!mostPopularContentPieces || mostPopularContentPieces.edges.length === 0) return null\n\n const handleCardClick = (id: string) => () => {\n trackClickContentCard({\n id: id,\n location: 'most_popular',\n })\n }\n\n return (\n \n \n {mostPopularContentPieces.edges.map(edge => {\n const { node: contentPiece } = edge\n\n return (\n \n \n \n )\n })}\n \n )\n}\n\nconst Container = styled.div>`\n display: flex;\n flex-direction: row;\n\n &:not(:last-child) {\n border-bottom: 1px solid ${({ theme }) => theme.palette.neutral[200]};\n }\n`\n\nexport default MostPopularContent\n\nconst MostPopularFragment = graphql`\n fragment MostPopularContent_viewer on Viewer\n @argumentDefinitions(encryptedEmail: { type: \"String\" }) {\n authorization {\n ...authorization_authorization\n }\n mostPopularContentPieces(first: 5) {\n edges {\n node {\n globalContentPieceId\n ...ContentPieceCardWrapper_contentPiece\n }\n }\n }\n }\n`\n","import MostPopularContent from './MostPopularContent'\nexport default MostPopularContent\n","import type { ParsedUrlQuery } from 'querystring'\n\nimport { createCTASourceUrlParam, createPostCheckoutRedirectParam } from './commonPageUrlParam'\n\nimport { routeMap } from 'shared/routes'\n\ntype Props = {\n asPath: string\n params: ParsedUrlQuery\n source: string\n additionalParamString?: string\n}\n\n// Use this fn when using subscription/sign-up buttons to return correct checkout url\nconst getCheckoutUrl = (props: Props): string => {\n const { asPath, params, source, additionalParamString } = props\n\n let baseParamString: string\n\n // Include passed down ref-page so we redirect back to where we came from (if it exists)\n if (params['ref-page']) {\n baseParamString = `?&ref-page=${encodeURIComponent(\n params['ref-page'][0],\n )}&${createCTASourceUrlParam(source)}`\n\n // Otherwise, add the current page as a ref-page\n } else {\n baseParamString = `?${createPostCheckoutRedirectParam(asPath)}&${createCTASourceUrlParam(\n source,\n )}`\n }\n\n const paramString = additionalParamString\n ? `${baseParamString}${additionalParamString}`\n : baseParamString\n\n if (!params['email-id']) {\n return `${routeMap.checkout()}${paramString}`\n }\n\n return `${routeMap.checkout()}?email-id=${params['email-id']}${paramString}`\n}\n\nexport { getCheckoutUrl }\n","import { useRouter } from 'next/router'\nimport { graphql, useFragment, useRelayEnvironment } from 'react-relay'\n\nimport type { NestedSignUp_viewer$key } from '__generated__/NestedSignUp_viewer.graphql'\nimport useMarketingOptin from 'containers/Auth/Hooks/useMarketingOptIn'\nimport appsFlyerPBAClient from 'lib/tracking/appsFlyerPBAClient'\nimport { useFinanceadsContext } from 'lib/tracking/financeAds/useFinanceadsTracking'\nimport { useImpactContext } from 'lib/tracking/impact/useImpactTracking'\nimport SignUpForm from 'modules/Auth/SignUpForm'\nimport { routeMap } from 'shared/routes'\n\nconst NestedSignUp = ({\n isAuthenticated,\n variant,\n viewer: viewerKey,\n}: {\n isAuthenticated: boolean\n variant?: 'paywall' | 'paywall-narrow'\n viewer: NestedSignUp_viewer$key\n}) => {\n const environment = useRelayEnvironment()\n const router = useRouter()\n const viewer = useFragment(NestedSignUpFragment, viewerKey)\n\n const relay = {\n environment: environment,\n refetch: undefined,\n hasMore: undefined,\n }\n\n const showMarketingOptInExperiment = useMarketingOptin(viewer)\n\n const onSuccess = () => {\n // Reload the page to log the user in (hide paywall, show 'profile' button etc.)\n router.reload()\n }\n\n const impactClient = useImpactContext()\n const financeadsClient = useFinanceadsContext()\n return (\n \n )\n}\n\nconst NestedSignUpFragment = graphql`\n fragment NestedSignUp_viewer on Viewer {\n ...useEnrollInExperiment_viewer\n }\n`\n\nexport default NestedSignUp\n","import { useState } from 'react'\n\nimport { useRouter } from 'next/router'\nimport { rgba } from 'polished'\nimport { graphql, useFragment } from 'react-relay'\nimport styled from 'styled-components'\n\nimport type { PaywallForm_viewer$key } from '__generated__/PaywallForm_viewer.graphql'\nimport Button from 'components/Button'\nimport Divider from 'components/Divider'\nimport Heading from 'components/Heading'\nimport HighlightText from 'components/HighlightText'\nimport Paragraph from 'components/Paragraph'\nimport Pill from 'components/Pill'\nimport type { PillProps } from 'components/Pill/Pill'\nimport Box from 'components/Primitives/Box'\nimport Set from 'components/Set'\nimport FullWidthBackground from 'containers/FullWidthBackground'\nimport { getCheckoutUrl } from 'lib/getCheckoutUrl'\nimport type { Pricing } from 'lib/pricing/types'\nimport { usePricing } from 'lib/pricing/usePricing'\nimport { getPaywallPrice, priceHasTrial } from 'lib/pricing/utils'\nimport NestedSignUp from 'modules/PaywallBanner/NestedSignUp'\nimport type { ThemedComponent } from 'theme/index'\nimport { fonts, trispace, zIndex } from 'theme/index'\n\nconst HEADING_TEXT = 'Master the markets. Start your free trial today.'\n\nconst PaywallForm = ({\n isAuthenticated,\n viewer: viewerKey,\n}: {\n isAuthenticated: boolean\n viewer: PaywallForm_viewer$key\n}) => {\n const { asPath, query: params = {} } = useRouter()\n const offerUrl = getCheckoutUrl({\n asPath,\n params,\n source: 'paywall',\n })\n const [clickedSignUp, setClickedSignUp] = useState(false)\n\n const handleClickSignUp = () => {\n setClickedSignUp(true)\n }\n\n const handleClickBack = () => {\n setClickedSignUp(false)\n }\n\n const viewer = useFragment(PaywallFormFragment, viewerKey)\n\n const { yearly: paywallPrice } = usePricing({ viewer }) as Pricing\n const { calculatedMonthlyPriceDiscounted, calculatedMonthlyPriceFull } =\n getPaywallPrice(paywallPrice)\n const hasDiscount = !!calculatedMonthlyPriceDiscounted\n const hasTrial = priceHasTrial(paywallPrice)\n\n return (\n \n \n \n \n \n You have 0 free articles left.\n \n {HEADING_TEXT.toUpperCase()}\n \n\n {!clickedSignUp && (\n \n \n Subscribe\n \n \n {hasTrial && (\n <>\n 7 Day Free Trial Then{' '}\n \n )}\n {hasDiscount ? (\n <>\n \n {calculatedMonthlyPriceFull}\n {' '}\n \n {calculatedMonthlyPriceDiscounted}\n \n \n ) : (\n \n {calculatedMonthlyPriceFull}\n \n )}\n /month\n \n \n \n \n {hasTrial ? 'Start Free Trial' : 'Go Pro'}\n \n\n {!isAuthenticated && (\n <>\n \n \n Free\n Or finish reading this story\n \n \n Sign Up Now\n \n \n )}\n \n )}\n {clickedSignUp && (\n <>\n {'< Back'}\n \n \n )}\n \n \n \n \n )\n}\n\nconst PaywallFormFragment = graphql`\n fragment PaywallForm_viewer on Viewer {\n ...NestedSignUp_viewer\n ...usePricing_viewer\n }\n`\n\nconst Container = styled.div`\n text-align: center;\n align-items: center;\n padding: 3rem 2rem;\n`\n\n// This is to ensure the paywall is full screen (so scrolls independently to the page)\nconst Wrapper = styled.div`\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: ${zIndex.layer05};\n height: 100vh;\n width: 100%;\n flex-direction: column;\n display: flex;\n overflow-y: auto;\n`\n\n// This is to create the opaque section above the paywall\nconst Top = styled.div`\n background-color: ${rgba(255, 255, 255, 0.6)};\n position: sticky;\n top: 0;\n min-height: 20vh;\n flex-grow: 1;\n flex-shrink: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n background: linear-gradient(\n to top,\n white 0%,\n rgba(255, 255, 255, 0.6) 19%,\n rgba(255, 255, 255, 0.6) 100%\n );\n`\n\nconst Inner = styled.div`\n width: 100%;\n z-index: ${zIndex.layer05};\n`\n\nconst AllowanceText = styled.p`\n font-family: ${trispace.style.fontFamily};\n font-size: ${fonts.size.XS};\n padding-bottom: 2rem;\n`\n\nconst InfoContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-self: center;\n gap: 1rem;\n`\n\nconst BackButton = styled.div`\n cursor: pointer;\n font-family: ${trispace.style.fontFamily};\n padding-bottom: 2rem;\n text-align: left;\n`\n\nconst StyledPill = styled(Pill)>`\n font-family: ${trispace.style.fontFamily};\n font-size: ${fonts.size.XXS};\n background-color: ${({ theme }) => theme.palette.neutral[50]};\n height: fit-content;\n`\n\nexport default PaywallForm\n","import { graphql, useFragment } from 'react-relay'\n\nimport type { PaywallBanner_viewer$key } from '__generated__/PaywallBanner_viewer.graphql'\nimport type { PaywallButtonProps } from 'modules/Checkout/utils'\nimport PaywallForm from 'modules/PaywallBanner/PaywallForm'\n\ninterface Props {\n generatePaywallButtonProps: (cta: string) => PaywallButtonProps\n isAuthenticated: boolean\n viewer: PaywallBanner_viewer$key\n}\n\nconst PaywallBanner = (props: Props) => {\n const viewer = useFragment(PaywallBannerFragment, props.viewer)\n\n const { isAuthenticated } = props\n\n return \n}\n\nconst PaywallBannerFragment = graphql`\n fragment PaywallBanner_viewer on Viewer {\n ...PaywallForm_viewer\n ...useEnrollInExperiment_viewer\n }\n`\n\nexport default PaywallBanner\n","import PaywallBanner from './PaywallBanner'\nexport default PaywallBanner\n","import { graphql, useFragment } from 'react-relay'\n\nimport type { authorization_authorization$key } from '__generated__/authorization_authorization.graphql'\nimport type {\n RelatedContentPieces_contentPiece,\n RelatedContentPieces_contentPiece$key,\n} from '__generated__/RelatedContentPieces_contentPiece.graphql'\nimport type { RelatedContentPieces_viewer$key } from '__generated__/RelatedContentPieces_viewer.graphql'\nimport CarouselHighlightCard from 'components/ContentCards/CarouselHighlightCard/CarouselHighlightCard'\nimport ContentPieceCardWrapper from 'components/ContentCards/DataWrappers/Relay/ContentPieceCardWrapper'\nimport useEnrollInExperiment from 'components/Experiments/useEnrollInExperiment'\nimport { READ_NEXT_EXPERIMENT } from 'data/experiments'\nimport { trackClickRelatedContent } from 'lib/analyticsApi'\nimport CarouselSection from 'modules/ContentSection/CarouselSection'\n\ntype Props = {\n viewer: RelatedContentPieces_viewer$key\n authorization: authorization_authorization$key\n contentPiece: RelatedContentPieces_contentPiece$key\n}\n\nexport type RelatedContentPiecesList = RelatedContentPieces_contentPiece['relatedContentPieces']\n\nconst RelatedContentPieces = ({ viewer: viewerKey, contentPiece, authorization }: Props) => {\n const { relatedContentPieces, globalContentPieceId } = useFragment(\n RelatedContentPiecesContentPieceFragment,\n contentPiece,\n )\n const viewer = useFragment(RelatedContentPiecesViewerFragment, viewerKey)\n\n const dailyContentSelection = viewer.dailyContentSelection?.edges?.map(edge => edge.node)\n const insights = viewer.contentPieces?.edges?.map(edge => edge.node)\n\n const [readNextVariant] = useEnrollInExperiment({\n name: READ_NEXT_EXPERIMENT.NAME,\n viewer,\n defaultVariantName: READ_NEXT_EXPERIMENT.VARIANT_DEFAULT,\n variantsAvailableInUI: [\n READ_NEXT_EXPERIMENT.VARIANT_DEFAULT,\n READ_NEXT_EXPERIMENT.VARIANT_FOR_YOU,\n READ_NEXT_EXPERIMENT.VARIANT_INSIGHTS,\n ],\n })\n\n let contentPieces = relatedContentPieces\n\n if (readNextVariant === READ_NEXT_EXPERIMENT.VARIANT_FOR_YOU) {\n // filter out the current content piece\n contentPieces = dailyContentSelection.filter(\n node => node.globalContentPieceId !== globalContentPieceId,\n )\n } else if (readNextVariant === READ_NEXT_EXPERIMENT.VARIANT_INSIGHTS) {\n contentPieces = insights.filter(\n node => node.globalContentPieceId !== globalContentPieceId,\n )\n }\n\n if (!contentPieces || contentPieces.length === 0) {\n return null\n }\n\n const trackClick = (id: string) => () => {\n return trackClickRelatedContent({ id })\n }\n\n return (\n \n {contentPieces.map((piece, index) => {\n return (\n \n )\n })}\n \n )\n}\n\nconst RelatedContentPiecesContentPieceFragment = graphql`\n fragment RelatedContentPieces_contentPiece on ContentPieceInterface {\n ... on ContentPieceInterface {\n globalContentPieceId\n relatedContentPieces {\n id\n globalContentPieceId\n ...ContentPieceCardWrapper_contentPiece\n }\n }\n }\n`\n\nconst RelatedContentPiecesViewerFragment = graphql`\n fragment RelatedContentPieces_viewer on Viewer {\n dailyContentSelection(first: 8) {\n ... on ContentPieceConnection {\n edges {\n node {\n ... on ContentPieceInterface {\n id\n globalContentPieceId\n ...ContentPieceCardWrapper_contentPiece\n }\n }\n }\n }\n }\n contentPieces(first: 8, contentPieceType: \"INSIGHT\", filterUncompletedOnly: true) {\n edges {\n node {\n id\n globalContentPieceId\n ...ContentPieceCardWrapper_contentPiece\n }\n }\n }\n ...useEnrollInExperiment_viewer\n }\n`\n\n\nexport default RelatedContentPieces\n","import RelatedContentPieces from './RelatedContentPieces'\nexport default RelatedContentPieces\n","import styled from 'styled-components'\n\nimport Paragraph from 'components/Paragraph'\nimport Box from 'components/Primitives/Box'\nimport { fonts } from 'theme'\nimport type { ThemedComponent } from 'theme'\n\ntype FeedbackOptionProps = {\n title: string\n emoji: string\n rating: number\n onSendFeedback: (rating: number) => void\n}\n\nconst FeedbackOption = ({ title, emoji, rating, onSendFeedback }: FeedbackOptionProps) => {\n const handleClick = () => {\n onSendFeedback(rating)\n }\n return (\n \n \n {emoji}\n \n \n {title}\n \n \n )\n}\n\ntype ButtonProps = React.ComponentProps<'button'>\n\ntype StyledProps = ThemedComponent\n\nconst FeedbackButton = styled.button`\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n border-radius: ${({ theme }) => theme.radii.default};\n border: none;\n font-size: ${({ theme }) => theme.fontSize.L};\n height: 3rem;\n width: 3rem;\n background-color: ${({ theme }) => theme.palette.neutral[100]};\n white-space: nowrap;\n text-decoration: none;\n`\n\nexport default FeedbackOption\n","import { useState } from 'react'\n\nimport FeedbackOption from './FeedbackOption'\n\nimport Divider from 'components/Divider'\nimport Paragraph from 'components/Paragraph'\nimport Box from 'components/Primitives/Box'\nimport Set from 'components/Set'\nimport { trackContentPieceRated } from 'lib/analyticsApi'\nimport type { ContentTrackingProps } from 'lib/analyticsApi'\nimport { fonts } from 'theme'\n\nexport const FEEDBACK_OPTIONS = [\n {\n title: 'Nope',\n emoji: '👎',\n rating: -1,\n },\n {\n title: 'Sort of',\n emoji: '😐',\n rating: 0,\n },\n {\n title: 'Absolutely',\n emoji: '👍',\n rating: 1,\n },\n]\n\ntype UserFeedbackProps = {\n trackingParams: ContentTrackingProps\n}\n\nconst UserFeedback = ({ trackingParams }: UserFeedbackProps) => {\n const [entered, setEntered] = useState(false)\n\n const onSendFeedback = (rating: number) => {\n // send mixpanel analytics\n trackContentPieceRated(trackingParams, rating)\n\n // mark as completed in the UI\n setEntered(true)\n }\n\n return (\n \n \n \n {!entered && (\n <>\n \n Did you find this insightful?\n \n\n \n {FEEDBACK_OPTIONS.map(option => (\n \n ))}\n \n \n )}\n {entered && (\n \n Thanks for letting us know! ✅\n \n )}\n \n \n \n )\n}\n\nexport default UserFeedback\n","import UserFeedback from './UserFeedback'\nexport default UserFeedback\n","import { graphql } from 'react-relay'\nimport type { Environment } from 'relay-runtime'\n\nimport type {\n CreateContentPieceCompletedByAnonymousUserEventInput,\n createContentPieceCompletedByAnonymousUserEventMutationResponse,\n} from '__generated__/createContentPieceCompletedByAnonymousUserEventMutation.graphql'\nimport createMutationPromise from 'lib/createMutationPromise'\n\nconst trackContentPieceCompletedByAnonymousUser =\n (relayEnv: Environment) =>\n (input: CreateContentPieceCompletedByAnonymousUserEventInput): Promise => {\n return createMutationPromise(\n relayEnv,\n )({\n mutation: graphql`\n mutation createContentPieceCompletedByAnonymousUserEventMutation(\n $input: CreateContentPieceCompletedByAnonymousUserEventInput!\n ) {\n createContentPieceCompletedByAnonymousUserEvent(input: $input) {\n clientMutationId\n }\n }\n `,\n variables: { input },\n })\n }\n\nexport default trackContentPieceCompletedByAnonymousUser\n","import { graphql } from 'react-relay'\nimport type { Environment } from 'relay-runtime'\n\nimport type {\n CreateContentPieceStartedByAnonymousUserEventInput,\n createContentPieceStartedByAnonymousUserEventMutationResponse,\n} from '__generated__/createContentPieceStartedByAnonymousUserEventMutation.graphql'\nimport createMutationPromise from 'lib/createMutationPromise'\n\nconst trackContentPieceStartedByAnonymousUser =\n (relayEnv: Environment) =>\n (\n input: CreateContentPieceStartedByAnonymousUserEventInput,\n ): Promise => {\n return createMutationPromise(\n relayEnv,\n )({\n mutation: graphql`\n mutation createContentPieceStartedByAnonymousUserEventMutation(\n $input: CreateContentPieceStartedByAnonymousUserEventInput!\n ) {\n createContentPieceStartedByAnonymousUserEvent(input: $input) {\n clientMutationId\n }\n }\n `,\n variables: { input },\n })\n }\n\nexport default trackContentPieceStartedByAnonymousUser\n","import { graphql } from 'react-relay'\nimport type { Environment } from 'relay-runtime'\n\nimport type {\n MarkChapterOrContentPieceCompleteInput,\n markContentPieceCompleteMutationResponse,\n} from '__generated__/markContentPieceCompleteMutation.graphql'\nimport createMutationPromise from 'lib/createMutationPromise'\n\nconst markContentPieceComplete =\n (relayEnv: Environment) =>\n (\n input: MarkChapterOrContentPieceCompleteInput,\n ): Promise =>\n createMutationPromise(relayEnv)({\n mutation: graphql`\n mutation markContentPieceCompleteMutation(\n $input: MarkChapterOrContentPieceCompleteInput!\n ) {\n markChapterOrContentPieceComplete(input: $input) {\n user {\n authorization {\n roles {\n isPreviewingContentAllowance\n isPreviewing\n }\n }\n }\n completedContentPiece {\n id\n isCompleted\n }\n }\n }\n `,\n variables: { input },\n })\n\nexport default markContentPieceComplete\n","import { graphql } from 'react-relay'\nimport type { Environment } from 'relay-runtime'\n\nimport type {\n MarkChapterOrContentPieceStartedInput,\n markContentPieceStartedMutationResponse,\n} from '__generated__/markContentPieceStartedMutation.graphql'\nimport createMutationPromise from 'lib/createMutationPromise'\n\nconst markContentPieceStarted =\n (relayEnv: Environment) =>\n (\n input: MarkChapterOrContentPieceStartedInput,\n ): Promise =>\n createMutationPromise(relayEnv)({\n mutation: graphql`\n mutation markContentPieceStartedMutation(\n $input: MarkChapterOrContentPieceStartedInput!\n ) {\n markChapterOrContentPieceStarted(input: $input) {\n startedContentPiece {\n id\n }\n }\n }\n `,\n variables: { input },\n })\n\nexport default markContentPieceStarted\n","import { useCallback, useEffect } from 'react'\n\nimport { useRouter } from 'next/router'\nimport { graphql, useFragment, useRelayEnvironment } from 'react-relay'\n\nimport type { SingleContentPiece_authorization$key } from '__generated__/SingleContentPiece_authorization.graphql'\nimport type { SingleContentPiece_contentPiece$key } from '__generated__/SingleContentPiece_contentPiece.graphql'\nimport type { SingleContentPiece_viewer$key } from '__generated__/SingleContentPiece_viewer.graphql'\nimport ContentBannerAdvert from 'components/Advertising/BannerAdvert'\nimport Column from 'components/Column'\nimport Columns from 'components/Columns'\nimport Hide from 'components/Hide'\nimport { StickySideBar } from 'components/StickySideBar/StickySideBar'\nimport PaddedPageContainer from 'containers/PaddedPageContainer'\nimport { DefaultLayout } from 'layouts'\nimport {\n trackEndReadContent,\n trackLastStartedContent,\n trackStartReadContent,\n trackViewPaywalledContent,\n} from 'lib/analyticsApi'\nimport { useHasContentAccess } from 'lib/authorization/useHasContentAccess'\nimport { useFreeArticleCookiesContext } from 'lib/freeArticleAllowance/useFreeArticleCookies'\nimport { getDeviceContext } from 'lib/getDeviceContext'\nimport { getLocalIsoDateTimeWithOffset } from 'lib/getLocalDateTimeWithOffset'\nimport useSessionId from 'lib/useSession'\nimport type { PaywallButtonProps } from 'modules/Checkout/utils'\nimport { getPaywallButtonProps } from 'modules/Checkout/utils'\nimport ContentDisclaimer from 'modules/ContentDisclaimer'\nimport FreeArticleCountBanner from 'modules/FreeArticleAllowance/FreeArticleCountBanner'\nimport MainContentSection from 'modules/MainContentSection'\nimport MostPopularContent from 'modules/MostPopularContent'\nimport PaywallBanner from 'modules/PaywallBanner'\nimport RelatedContentPieces from 'modules/RelatedContentPieces'\nimport UserFeedback from 'modules/UserFeedback'\nimport trackContentPieceCompletedByAnonymousUser from 'relay/mutations/createContentPieceCompletedByAnonymousUserEvent'\nimport trackContentPieceStartedByAnonymousUser from 'relay/mutations/createContentPieceStartedByAnonymousUserEvent'\nimport markContentPieceComplete from 'relay/mutations/markContentPieceComplete'\nimport markContentPieceStarted from 'relay/mutations/markContentPieceStarted'\nimport type { CONTENT_TYPES } from 'types/contentPiece'\n\ntype Props = {\n contentPiece: SingleContentPiece_contentPiece$key\n authorization: SingleContentPiece_authorization$key\n viewer: SingleContentPiece_viewer$key\n encryptedEmail?: string\n isAuthenticated: boolean\n}\n\n/*\n Displays the UI for a single text content piece\n*/\nconst SingleContentPiece = ({\n encryptedEmail,\n isAuthenticated,\n ...relayProps\n}: Props): React.ReactElement => {\n const contentPiece = useFragment(ContentPieceFragment, relayProps.contentPiece)\n const authorization = useFragment(AuthorizationFragment, relayProps.authorization)\n const viewer = useFragment(SingleContentPieceViewerFragment, relayProps.viewer)\n\n const environment = useRelayEnvironment()\n\n const router = useRouter()\n\n const { cookiesInitialised, decrementRemainingFreeArticles } = useFreeArticleCookiesContext()\n\n const {\n globalContentPieceId,\n trackingTitle,\n isPremium,\n hasBlocks,\n hasAudio,\n contentPieceType: { trackingName: typeTrackingName, isAvailableForFreemium },\n activeProductAdvert,\n sponsoringCompany,\n } = contentPiece\n\n const {\n roles: {\n hasPremiumSubscription,\n isPreviewingContentAllowance,\n isPreviewing,\n isAnonymous,\n isFreemium,\n },\n } = authorization\n\n const isServerAuthenticated = !isAnonymous\n\n const hasContentAccess = useHasContentAccess({\n authorization,\n contentPieceAuthorization: contentPiece,\n })\n\n const trackingProps = {\n id: globalContentPieceId,\n type: typeTrackingName,\n walled: isPremium,\n title: trackingTitle,\n parentTitle: null,\n parentId: null,\n chapters: false,\n text: hasBlocks,\n audio: hasAudio,\n isFreePreview: isPreviewingContentAllowance,\n }\n\n const isFreeContent =\n !isPremium ||\n (isFreemium && isAvailableForFreemium) ||\n hasPremiumSubscription ||\n isPreviewing\n\n const showPaywall = !hasContentAccess\n\n const isAudioOnlySingle = hasAudio && !hasBlocks\n\n const sessionId = useSessionId(isServerAuthenticated)\n\n useEffect(() => {\n if (!hasContentAccess) {\n // set the last started content piece as a super property for events in this session,\n // so that we can understand what content caused conversion events such as purchases\n trackLastStartedContent(globalContentPieceId)\n // track started paywalled content if the user doesn't have access\n trackViewPaywalledContent(trackingProps)\n }\n }, [])\n\n const generatePaywallButtonProps = useCallback(\n (cta: string): PaywallButtonProps => {\n return getPaywallButtonProps(cta, router.asPath, encryptedEmail)\n },\n [encryptedEmail, router.asPath],\n )\n\n useEffect(() => {\n // On Start tracking\n if (!showPaywall) {\n // This fires before the page view event, so we should track the last started content\n // for users with access here\n trackLastStartedContent(globalContentPieceId)\n\n trackStartReadContent(trackingProps)\n\n const deviceContext = JSON.stringify(getDeviceContext(navigator.userAgent))\n const localIsoDateTimeWithOffset = getLocalIsoDateTimeWithOffset()\n\n // Only mark on the server if we have a logged-in-user\n isServerAuthenticated &&\n markContentPieceStarted(environment)({\n startedId: globalContentPieceId,\n deviceContext,\n localIsoDateTimeWithOffset,\n })\n\n isAnonymous &&\n sessionId &&\n trackContentPieceStartedByAnonymousUser(environment)({\n contentPieceId: globalContentPieceId,\n sessionId: sessionId,\n impressions: [],\n deviceContext,\n localIsoDateTimeWithOffset,\n })\n }\n }, [globalContentPieceId, isAnonymous, showPaywall])\n\n const onCompleteUnlockedArticle = useCallback(() => {\n trackEndReadContent(trackingProps)\n\n // Reduce a user's cookie allowance\n cookiesInitialised && decrementRemainingFreeArticles(globalContentPieceId, isFreeContent)\n\n const deviceContext = JSON.stringify(getDeviceContext(navigator.userAgent))\n const localIsoDateTimeWithOffset = getLocalIsoDateTimeWithOffset()\n\n // Only mark on the server if we have a logged-in-user\n isServerAuthenticated &&\n markContentPieceComplete(environment)({\n completedId: globalContentPieceId,\n deviceContext,\n localIsoDateTimeWithOffset,\n })\n\n isAnonymous &&\n sessionId &&\n trackContentPieceCompletedByAnonymousUser(environment)({\n contentPieceId: globalContentPieceId,\n sessionId,\n impressions: [],\n deviceContext,\n localIsoDateTimeWithOffset,\n })\n }, [\n trackingProps,\n cookiesInitialised,\n decrementRemainingFreeArticles,\n isFreeContent,\n globalContentPieceId,\n isServerAuthenticated,\n environment,\n isAnonymous,\n sessionId,\n ])\n\n useEffect(() => {\n if (showPaywall) {\n document.body.style.overflow = 'hidden'\n }\n })\n\n const showInlineSignup = !isAuthenticated && hasContentAccess\n /**\n * We don't want to show adverts on content that is sponsored.\n */\n const showAdvert = !sponsoringCompany && !showPaywall\n\n return (\n \n \n {showAdvert && }\n \n \n \n {!showPaywall && }\n \n \n \n \n \n {/* Hide on mobile when paywall is showing */}\n \n \n \n \n \n {!showPaywall && (\n \n )}\n {!showPaywall && (\n \n )}\n \n {showPaywall && !isAudioOnlySingle && (\n \n )}\n {!showPaywall && (\n \n )}\n \n )\n}\n\nconst ContentPieceFragment = graphql`\n fragment SingleContentPiece_contentPiece on ContentPieceInterface {\n ...AudioOnlyBanner_contentPiece\n ...authorization_contentPiece\n ...MainContentSection_contentPiece\n ...RelatedContentPieces_contentPiece\n\n globalContentPieceId\n trackingTitle\n isPremium\n hasBlocks\n hasAudio\n contentPieceType {\n name\n trackingName\n isAvailableForFreemium\n }\n sponsoringCompany {\n name\n }\n activeProductAdvert {\n ...BannerAdvert_activeProductAdvert\n }\n }\n`\n\nconst AuthorizationFragment = graphql`\n fragment SingleContentPiece_authorization on Authorization {\n ...authorization_authorization\n ...ContentHeaderDetails_authorization\n ...ContentDownloadBlock_authorization\n ...EvergreenContentHeader_authorization\n roles {\n isPreviewingContentAllowance\n isPreviewing\n isAnonymous\n hasPremiumSubscription\n isFreemium\n }\n }\n`\n\nexport const SingleContentPieceViewerFragment = graphql`\n fragment SingleContentPiece_viewer on Viewer\n @argumentDefinitions(slugOrId: { type: \"String\" }) {\n features\n\n ...PaywallBanner_viewer\n ...DefaultLayout_viewer\n ...useEnrollInExperiment_viewer\n ...MostPopularContent_viewer\n ...MainContentSectionViewer_viewer @arguments(slugOrId: $slugOrId)\n ...RelatedContentPieces_viewer\n }\n`\n\nexport default SingleContentPiece\n","import type { NextPageContext } from 'next'\n\nimport { StatusCodeEnum, redirect } from 'lib/redirect'\n\n/**\n * This function checks if the current URL path matches the canonical URL,\n * and performs a redirect if not.\n *\n * @param ctx - The Next.js context object.\n * @param canonicalLink - The canonical URL for the content. Expected to be a full URL.\n * @returns False if no redirect is performed, true otherwise.\n */\nexport const checkPathAndPermanentRedirect = async (\n ctx: NextPageContext,\n canonicalLink?: string,\n): Promise => {\n const { asPath } = ctx\n\n // If there's no canonicalLink provided, we can't do a redirect\n if (!canonicalLink || !asPath) return false\n\n const canonicalUrl = new URL(canonicalLink)\n const currentUrl = new URL(asPath, canonicalUrl.origin)\n\n // If the current path matches the canonical path, no redirect is necessary\n if (currentUrl.pathname === canonicalUrl.pathname) {\n return false\n }\n\n // Construct target URL for redirect\n // assumes the canonical URL has no query string or hash, which it shouldn't\n canonicalUrl.search = currentUrl.search\n canonicalUrl.hash = currentUrl.hash\n\n // gets relative path without the hostname, but with the hash and query string\n const target = canonicalUrl.toString().substring(canonicalUrl.origin.length)\n\n redirect(ctx, target, StatusCodeEnum.PERMANENTLY_MOVED)\n\n return true\n}\n","import type { NextPageContext } from 'next'\nimport { graphql } from 'react-relay'\n\nimport type { ContentPieceQueryResponse } from '__generated__/ContentPieceQuery.graphql'\nimport SingleContentPiece from 'containers/ContentPiece/SingleContentPiece'\nimport { ContentNotFound } from 'containers/NotFound'\nimport { checkPathAndPermanentRedirect } from 'lib/checkPathAndPermanentRedirect/checkPathAndPermanentRedirect'\nimport { redirectOrServePageNotFoundStatus } from 'lib/redirects'\nimport { withDataNotLoggedIn } from 'lib/withData'\nimport type { DefaultPageProps } from 'types'\nimport type { RelayProps } from 'types/relay'\n\ninterface QueryProps {\n slugOrId: string\n contentPieceType: string\n}\n\ninterface URLParams {\n 'email-id'?: string\n}\n\ntype Props = DefaultPageProps & ContentPieceQueryResponse & QueryProps & URLParams & RelayProps\n\nconst ContentPiece = ({ viewer, isAuthenticated, 'email-id': encryptedEmail }: Props) => {\n // If there is no view there is an error, at the moment this fixes a redirect issue where the page tries to render\n // something to the page before the redirect completes. Which was leading to a flash of ContentNotFound on prod.\n // This may have to be reviewed in the future.\n if (!viewer) return null\n\n const { contentPiece, authorization } = viewer\n\n if (!contentPiece) return \n\n return (\n \n )\n}\n\n/**\n * This function checks if the current URL path matches the canonical URL,\n * and performs a redirect if not.\n *\n * @param ctx - The Next.js context object.\n * @param queryProps - The properties extracted from the query.\n * @returns False if no redirect is performed, true otherwise.\n */\nconst redirectPage = async (\n ctx: NextPageContext,\n queryProps: (DefaultPageProps & ContentPieceQueryResponse & QueryProps & URLParams) | null,\n): Promise => {\n const exists = !!queryProps?.viewer?.contentPiece\n\n if (!exists) {\n return redirectOrServePageNotFoundStatus(ctx)\n }\n\n const canonicalLink = queryProps?.viewer?.contentPiece?.canonicalLink\n\n return checkPathAndPermanentRedirect(ctx, canonicalLink)\n}\n\nconst ProfileWithData = withDataNotLoggedIn(\n ContentPiece,\n {\n query: graphql`\n query ContentPieceQuery($slugOrId: String) {\n viewer {\n authorization {\n roles {\n isAnonymous\n }\n ...SingleContentPiece_authorization\n }\n ...SingleContentPiece_viewer @arguments(slugOrId: $slugOrId)\n contentPiece(slugOrId: $slugOrId) {\n ...SingleContentPiece_contentPiece\n canonicalLink\n }\n }\n }\n `,\n mapProps: ({ query }: { query: QueryProps & URLParams }) => {\n const { slugOrId } = query\n return {\n slugOrId,\n encryptedEmail: query['email-id'] || null,\n }\n },\n getInitialPropsPage: redirectPage,\n },\n false,\n)\n\nexport default ProfileWithData\n","import ContentPiecePage from 'containers/ContentPiece/ContentPiece'\n\nexport default ContentPiecePage\n"],"names":["window","__NEXT_P","push","__webpack_require__","node","hash","__webpack_exports__","v0","v1","v2","v3","v4","v5","v6","v7","v8","v9","v10","v11","v12","v13","v14","v15","v16","v17","v18","v19","v20","v21","v22","v23","v24","v25","v26","v27","v28","v29","v30","v31","v32","v33","v34","v35","v36","v37","v38","v39","v40","v41","v42","v43","v44","DownloadContentDropdownContentPieceRefetch_viewer_graphql","ASSET_LOGO_PLACEHOLDER_COLORS","theme","info","secondary","neutral","getPlaceholderColor","asciiTotal","limit","symbol","length","i","charCodeAt","LogoContainer","styled","div","withConfig","size","param","css","layout","breakpoints","small","fonts","XXS","background","palette","StyledImage","Image","Z","src","ticker","startsWith","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__","jsx","alt","concat","fill","DetailsContainer","components_AssetPreviewCard","name","image","AssetLogo","trackingParams","jsx_runtime","Card","url","routeMap","assets","onClick","trackAssetClicked","jsxs","Box","display","flexDirection","alignSelf","padding","Heading","fontSize","L","m","paddingBottom","XS","fontWeight","weight","normal","color","AvatarRoot","Root","AvatarImage","AvatarFallback","Fallback","fontWeights","medium","AvatarFragment","memo","imageKey","byline","props","useFragment","original","delayMs","MARKETING_EXPERIMENT_VARIANTS","DEFAULT","EXPLICIT_OPT_IN","useMarketingOptIn","usedVariantName","useEnrollInExperiment","viewer","defaultVariantName","variantsAvailableInUI","showMarketingOptInExperiment","NotFound","message","subtitle","Container","data-cy","NextSeo","title","titleTemplate","noindex","justifyContent","alignItems","height","textAlign","maxWidth","as","notFoundDefaultProps","Paragraph","Link","home","defaultProps","errorMessage","NotFound_ContentNotFound","containers_NotFound","usePricing","webPricingConfig","usePricingFragment","yearly","PricingConfigFragment","monthly","createPriceFromWebPricingConfig","interval","createPriceFromWebPaymentPlan","stripeId","amount","currency","currencySymbol","nickname","webPaymentPlan","promotionApplied","id","discountPct","stripeDiscount","discountAmount","couponDurationInMonths","couponRepetition","trialDays","calculateCouponDurationInMonths","discount","discountFixed","getPaywallPrice","priceObject","annualPlan","isAnnual","toLowerCase","hasDiscount","calculatedMonthlyPriceDiscounted","createPriceString","stripeDiscountPct","stripeDiscountAmount","convertToMonth","hideCurrencyInfo","calculatedMonthlyPriceFull","priceHasTrial","redirectOrServePageNotFoundStatus","context","urlMap","asPath","res","destination","redirect","StatusCodeEnum","PERMANENTLY_MOVED","statusCode","NOT_FOUND","trackNotFoundRedirect","origin","app_store_logo","google_play_badge","AppStore_AppStoreLinks","outerStylingProps","buttonSize","Set","flexWrap","appStoreLogo","href","appStoreUrl","width","position","objectFit","googlePlayBadge","playStoreUrl","PAYMENT_STATUSES","SUCCESS","REQUIRES_ACTION","ERROR_MESSAGES","TOKEN_FAILED","PAYMENT_FAILED","MUTATION_FAILED","STRIPE_ERROR","lib_getDiscountValue","price","roundedPrice","Number","isInteger","formatDecimalStr","discountValue","toFixed","webPurchasePostSCAMutation","createMutationPromise","relayEnv","mutation","variables","input","onSuccessfulPurchase","slug","customerId","email","defaultRedirectFn","impactTrackingFn","financeadsTrackingFn","appsFlyerPBATrackingFn","mutationResult","environment","userId","serverFinanceadsId","basePurchaseParams","getDiscountValue","checkoutParams","getCheckoutDataParams","fbclid","fbp","getFBTrackingParams","trackingProps","impactParams","orderSubTotalPostDiscount","orderDiscount","currencyCode","toUpperCase","itemSubTotal","itemCategory","appsFlyerPBAProps","customerUserId","afRevenue","afCurrency","isYearlySubscription","fbTrackStartTrial","FREE_TRIAL","FINANCEADS_TRIAL","AF_TRIAL","trackStartTrialProxy","fbTrackSubscription","YEARLY_SUBSCRIPTION","MONTHLY_SUBSCRIPTION","FINANCEADS_YEARLY_SUBSCRIPTION","FINANCEADS_MONTHLY_SUBSCRIPTION","AF_YEARLY_SUBSCRIPTION","AF_MONTHLY_SUBSCRIPTION","trackSubscriptionProxy","redirectPath","checkoutRedirectKey","onRequiresAction","result","clientSecret","stripe","planId","customerToken","encryptedEmail","paymentMethodId","relay","originalMutationResult","isNativePurchase","resultStatus","confirmCardSetup","setupIntent","status","confirmCardPayment","paymentIntent","error","postPurchaseProps","postSCAMutationResult","getPaywallButtonProps","cta","redirectUrl","encodeURIComponent","checkout","pathname","query","SocialShareContentVariants","StickySideBar","TOP_NAV_HEIGHT","SUB_NAV_BAR_HEIGHT","getDeviceContext","version","platform","web","userAgent","getLocalIsoDateTimeWithOffset","isClient","now","Date","formatISO","CONTENT_TYPE_EXPANDED_NEWS_MT","AI_DISCLAIMER","modules_ContentDisclaimer","contentPieceType","aiDisclaimer","isMTNewsWires","paddingX","paddingTop","strong","shouldIncludeAiDisclaimer","StyledButton","Button","ArrowIcon","Icon","$isCollapsed","ArrowButton","button","FreeArticleAllowance_FreeArticleCountBanner","hasContentAccess","isFreeContent","totalArticleCountThisAllowanceWindow","remainingFreeArticles","useFreeArticleCookiesContext","isCollapsed","setisCollapsed","useState","hideBanner","useEffect","trackViewFreeAllowanceBanner","number","useRouter","freeTrialUrl","getJoinPageUrlPath","CTAButton","trackClickFreeAllowanceBanner","expanded","ariaLabel","variant","fullWidth","expandableFontSize","M","FullWidthBackground","sticky","backgroundColor","marginLeft","bold","className","trispace","px","lineHeight","flex","paddingRight","Hide","on","marginRight","trackToggleFreeAllowanceBanner","icon","S","InlineAdvert_InlineAdvertUI","trackingTitle","content","disclaimer","ref","useRef","useAdvertisingTracking","advertHandle","advertId","companyName","type","AdvertLabel","AdvertLabelLine","AdvertContainer","Title","ImageContainer","map","item","index","MarkdownParser","text","marginTop","marginBottom","link","Disclaimer","ImageRatios","GOLDEN_RATIO","radii","default","AccessibleImageWithLinkFragment","Relay_AccessibleImageWithLink","accessibleImage","accessibleImageKey","LinkWrapper","undefined","full","altText","InlineAdvertFragment","Advertising_InlineAdvert","viewerKey","advert","adverts","newsletterLatestRandom","AccessibleImageWithLink","mapBlocks","blocks","block","__typename","textMarkdown","ImageBlock","filter","InlineAdvertUI","OpacityOverlay","_OpacityOverlay","fadeTo","color1","color2","zIndex","layer03","Hooks_useContentScrollTracking","onScrollPastThreshold","trackingEnabled","globalID","hasTracked","setHasTracked","onScroll","useCallback","current","verticalScroll","scrollY","browserViewportHeight","innerHeight","pageHeight","clientHeight","SCROLL_TRACKING_THRESHOLD","addEventListener","passive","removeEventListener","FACEBOOK","TWITTER","LINKEDIN","socialShares","Facebook","label","LinkedIn","Twitter","getSocialShareLink","network","contentPieceTitle","deepLink","encodedUrl","encodedTitle","trackSocialClick","contentPieceId","location","trackSocialShareContent","useCopyToClipboard","canonicalLink","copied","setCopied","clipboardURLPath","useContentUrl","canonicalLinkUrlObject","URL","clipboardURL","protocol","host","copyToClipboard","navigator","clipboard","writeText","trackContentPieceLinkCopied","ShareIconButton","ShareContent_ShareContentIcon","target","aria-label","modules_ShareContent","spacing","Object","values","ShareContentIcon","Popover","popoverMessage","ContentFooterContentPieceFragment","Tags","ContentFooter_ContentFooter","contentPiece","contentPieceKey","mostRelevantTags","tags","isVertical","ShareContent","edges","tag","Tag","placement","TagPlacementEnum","ARTICLE_FOOTER","LinkStyling","AuthorLinkWrapperFragment","Author_AuthorLinkWrapper","author","authorKey","children","inActiveAuthor","isActive","Fragment","experts","legacyBehavior","formatReadingTime","readingTimeSeconds","defaultValue","unit","isNaN","roundedSeconds","Math","round","minPart","secondsPart","floor","formattedUnit","pluralize","ContentMetadataFragment","modules_ContentMetadata","consumptionTime","isEvergreen","dateUpdatedDisplay","showDateUpdated","showConsumptionTime","AuthorLinkWrapper","timeAgo","ContentAuthorAndMetadataFragment_author","ContentHeader_ContentAuthorAndMetadata","Avatar","profilePicture","ContentMetadata","selectStyles","valueContainer","styles","Theme","paddingLeft","control","borderRadius","borderColor","boxShadow","margin","dropdownIndicator","transform","selectProps","menuIsOpen","indicatorSeparator","menuPortal","layer06","menu","borderStyle","borderWidth","option","isFocused","cursor","overflow","textOverflow","whiteSpace","components_Dropdown","options","onOptionSelected","placeholder","customComponents","customStyles","value","setMenuIsOpen","sortedOptions","sort","a","b","localeCompare","Select","onChange","newValue","actionValue","action","isSearchable","mergeStyles","onMenuOpen","onMenuClose","components","downloadTextContent","fileName","textBlocks","flatMap","contentWithTitle","join","blob","Blob","createObjectURL","document","createElement","download","click","getLanguageDisplayName","englishLanguageName","Intl","DisplayNames","of","locale","localisedLanguageName","charAt","slice","Control","style","DropdownSpinnerContainer","ButtonGrouping","compact","customDropdownStyles","ButtonWrapper","DownloadContentDropdownTranslatedLocalesFragment","DownloadContentDropdownContentPieceRefetchFragment","DownloadContentDropdownBlocksFragment","ContentHeader_DownloadContentDropdown","contentPieceData","isLoading","setLoading","fetchComplete","setFetchComplete","selectedLocale","setSelectedLocale","refetch","useRefetchableFragment","localeMapping","contentPieceBlocks","contentPieceTranslation","keyInsightsBlocks","downloadContent","console","blocksToDownload","trackDownloadContent","mapping","find","languageCode","slugOrId","fetchPolicy","onComplete","filteredLanguageOptions","useMemo","selectedValue","Dropdown","Spinner","ContentDownloadBlockAuthorizationFragment","ContentDownloadBlockContentFragment","ContentHeader_ContentDownloadBlock","authorization","roles","isB2bUser","isAvailableToProducts","DownloadContentDropdown","components_ConditionalHide","condition","audio_only_phone","AudioOnlyBannerFragment","modules_AudioOnlyBanner","hideBackground","hidePhoneModelOnMobile","subtitleSizeMobile","headerImage","bg","pb","mx","pt","p","ConditionalHide","top","left","layer01","ServerImage","audioOnlyPhone","pl","isBlock","AppStoreLinks","AudioOnlyModal","toggleModal","ListenButtonFragment","Column","spread","offset","AudioOnlyBanner","modules_ListenButton","dialog","useDialogState","audioOnly","hasAudio","hasBlocks","showButton","Modal","toggle","isPremium","trackingName","typeTrackingName","trackAttemptListenContent","walled","parentTitle","parentId","chapters","audio","LinkItem","Item","transparentize","IconAndLabel","ShareContent_ShareContentDropdownItem","onSelect","event","preventDefault","TriggerButton","DropdownContent","Content","elevation","layer05","ShareContent_ShareContentDropdown","Trigger","asChild","rounded","Portal","sideOffset","ShareContentDropdownItem","ContentHeaderDetailsContentPieceFragment","ContentHeaderDetailsAuthorizationFragment","DefaultContentHeader_ContentHeaderDetails","XXXL","mt","mb","ListenButton","ContentDownloadBlock","ContentPieceBookmarkIcon","toggledVia","ShareContentDropdown","ActionButtons","DefaultContentHeaderContentPieceFragment","DefaultContentHeader_DefaultContentHeader","isAudioOnlySingle","ContentHeaderDetails","AspectRatioBox","ratio","priority","ContentAuthorAndMetadata","ContentFragment","ContentHeader_ContentPieceSponsor","sponsoringCompany","logo","StyledLink","underline","rest","NullableLink","EvergreenContentHeaderFragment","EvergreenContentHeaderAuthorizationFragment","EvergreenContentHeader_EvergreenContentHeader","ContentPieceSponsor","Divider","SQUARE","ContentHeaderFragment","modules_ContentHeader","contentPieceTypeName","DefaultContentHeader","getUsesSquareImage","EvergreenContentHeader","InsightCard","accent","StyledListItem","ListItem","ContentPieceFragment","KeyInsights_KeyInsightsBlock","py","List","MarkdownText","KeyInsights_KeyInsightsCarousel","Carousel","itemWidth","modules_KeyInsights","KeyInsightsBlock","KeyInsightsCarousel","MentionedAssetsFragment","modules_MentionedAssets","financialAssets","asset","thumbnail","assetLogo","assetName","assetSymbol","AssetPreviewCard","ContentPieceSEOFragment","SEO_ContentPieceSEO","imageForSeo","firstPublishedAt","seoTitle","searchDescription","_title","_description","ArticleJsonLd","images","datePublished","authorName","publisherName","publisherLogo","description","canonical","openGraph","site_name","article","publishedTime","authors","facebook","appId","twitter","handle","site","cardType","MainContentSectionFragment","MainContentSectionViewerFragment","modules_MainContentSection","onCompleteUnlockedArticle","showInlineSignup","showInlineAdvert","globalContentPieceId","glossaryTerms","showPaywall","useContentScrollTracking","ContentPieceSEO","ContentHeader","KeyInsights","InlineSignup","source","Block","InlineAdvert","MentionedAssets","ContentFooter","MostPopularFragment","modules_MostPopularContent","mostPopularContentPieces","handleCardClick","trackClickContentCard","LargeHeader","edge","ContentPieceCardWrapper","CardComponent","SmallCard","getCheckoutUrl","baseParamString","params","additionalParamString","createCTASourceUrlParam","createPostCheckoutRedirectParam","paramString","NestedSignUpFragment","PaywallBanner_NestedSignUp","isAuthenticated","useRelayEnvironment","router","useMarketingOptin","impactClient","useImpactContext","financeadsClient","useFinanceadsContext","SignUpForm","hasMore","onSuccess","reload","track","appsFlyerPBAClient","onClickLogin","login","PaywallFormFragment","Wrapper","Top","rgba","Inner","AllowanceText","fontFamily","InfoContainer","BackButton","StyledPill","Pill","PaywallBanner_PaywallForm","offerUrl","clickedSignUp","setClickedSignUp","paywallPrice","hasTrial","overrideMaxWidth","fontStyle","extraBold","heading","HighlightText","span","textDecoration","NestedSignUp","PaywallBannerFragment","modules_PaywallBanner","PaywallForm","RelatedContentPiecesContentPieceFragment","RelatedContentPiecesViewerFragment","modules_RelatedContentPieces","relatedContentPieces","dailyContentSelection","insights","contentPieces","readNextVariant","READ_NEXT_EXPERIMENT","NAME","VARIANT_DEFAULT","VARIANT_FOR_YOU","VARIANT_INSIGHTS","trackClick","trackClickRelatedContent","CarouselSection","piece","CarouselHighlightCard","priorityImageLoad","FeedbackButton","UserFeedback_FeedbackOption","emoji","rating","onSendFeedback","paragraph","FEEDBACK_OPTIONS","modules_UserFeedback","entered","setEntered","trackContentPieceRated","marginY","paddingY","minHeight","semibold","FeedbackOption","createContentPieceCompletedByAnonymousUserEvent","createContentPieceStartedByAnonymousUserEvent","mutations_markContentPieceComplete","mutations_markContentPieceStarted","AuthorizationFragment","SingleContentPieceViewerFragment","ContentPiece_SingleContentPiece","relayProps","cookiesInitialised","decrementRemainingFreeArticles","isAvailableForFreemium","activeProductAdvert","hasPremiumSubscription","isPreviewingContentAllowance","isPreviewing","isAnonymous","isFreemium","isServerAuthenticated","useHasContentAccess","contentPieceAuthorization","isFreePreview","sessionId","useSessionId","trackLastStartedContent","trackViewPaywalledContent","generatePaywallButtonProps","trackStartReadContent","deviceContext","JSON","stringify","localIsoDateTimeWithOffset","markContentPieceStarted","startedId","trackContentPieceStartedByAnonymousUser","impressions","trackEndReadContent","markContentPieceComplete","completedId","trackContentPieceCompletedByAnonymousUser","body","showAdvert","DefaultLayout","seoProps","hideFooter","PaddedPageContainer","pageName","ContentBannerAdvert","isAboveTheFold","Columns","marginX","MainContentSection","UserFeedback","MostPopularContent","RelatedContentPieces","ContentDisclaimer","PaywallBanner","FreeArticleCountBanner","checkPathAndPermanentRedirect","ctx","canonicalUrl","currentUrl","search","toString","substring","redirectPage","queryProps","exists","ProfileWithData","withDataNotLoggedIn","SingleContentPiece","ContentNotFound","mapProps","getInitialPropsPage","_subPath_"],"sourceRoot":""}